PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Windows Server!!



-Sensemann-
03-12-2003, 17:29
Hallo,

ich muss in gut 45 Minuten los mit im Gepäck eine Homepage auf meinem Notebook.

Das Problem, der Apache funktioniert nicht so wie er soll.
Es ist von TSW

Apache2.0
das ist die Fehlermeldung.

Warning: main(.;C:/Programme/TSW/Apache2/htdocs/bilder/templates/head.tpl): failed to open stream: No such file or directory in C:\Programme\TSW\Apache2\htdocs\bilder\index.php on line 32

Fatal error: main(): Failed opening required '.;C:/Programme/TSW/Apache2/htdocs/bilder/templates/head.tpl' (include_path='.;C:\Programme\TSW\Apache2\php\pear \pear\') in C:\Programme\TSW\Apache2\htdocs\bilder\index.php on line 32

Sorry, ich würd zwar gerne ne Knoppix CD nehmen leider startet die beim Notebook nicht :(

die Index.php sieht wie folgt aus.



<?php



$tpl_path = "htdocs/bilder/templates/";


if ($_REQUEST['showpage'] == "") {


$template = "index.tpl";

}

else {


$template = $_REQUEST['showpage'] . ".tpl";

}



if (!file_exists($tpl_path . $template)) {


$template = "error.tpl";

}

require($tpl_path . "head.tpl");

require($tpl_path . $template);

require($tpl_path . "foot.tpl");





?>


hat jemand eine idee?

danke :)

Url:

http://localfoo.info/modules/news/

-Sensemann-
09-03-2004, 18:26
*push*

-Sensemann-
09-03-2004, 19:30
So bekomm jetzt die Meldung

unexpextet T-String line 9

if ($_REQUEST['showpage'] == "") {

mehlvogel
10-03-2004, 11:02
Du hast am Ende der Variable jetzt bestimmt ein



\\";


stehen (also Backslach Anführungszeichen Semikolon). In dem String musst du den Backslash allerdings maskieren, weil er sonst das Anführungszeichen maskiert, also so müssten dein String in etwa aussehen:



$pfad = "htdocs\\\\verzeichnis1\\\\verzeichnis2\\\\";


Sogar hier im Forum muss man es doppelt maskieren.

-Sensemann-
10-03-2004, 16:16
Danke dir hat ein wenig geholfen!

jetzt werden nur noch die Bilder ignoriert.

darkmoon.2xt.de
27-03-2004, 12:47
Dann lass das htdocs aus dem Bilder Verzeichnis raus!!!

Der Apache greift doch genrell darauf zu drum sollte man das nicht angeben müssen oder?
Drum wird er sie vielleicht nicht finden.

EDIT: Oha ich bin bisschen sehr spät mit dem Tip dran sehe ich gerade :(

-Sensemann-
31-03-2004, 18:53
Naja das Notebook ist nicht geeignet. Vielleicht geht es besser wenn ich Linux installiere.

dipesh
26-04-2004, 21:26
Kleine Randbemerkung;
Du verarbeitest require($_REQUEST['showpage'] ) ganz ohne Prüfung des Inhaltes! Damit wäre es möglich das Script durch eine URL wie index.php?showpage=../../whatever zu etwas zu bringen das eventuell nicht gewollt war, selbst wenn in diesem Fall die Einfallstür auf Dateien mit der Endung tpl beschränkt ist. Es ist dringend zu empfehlen stets jede Benutzereingabe auf Gültigkeit zu prüfen bzw. ungültige Zeichen auszuschließen ( z.B. durch ein $_REQUEST['showpage'] = preg_replace("#[^a-zA-Z0-9\-\_\/]#","",$_REQUEST['showpage'] ); ).

p.s. ich bin perl-fan und nicht sonderlich begeistert von php weswegen ich mich nie mit der Sprache beschäftigte. Es mag sein, dass es eine elegantere Anweisung als die obere regex gibt um das gewünschte zu erreichen.