root@localhost Geschrieben 10. Oktober 2002 Geschrieben 10. Oktober 2002 Hallo Leutz, wieder mal ein PHP Prob. Ich bastle grad ein bißchen rum und versuche ein *.INC.PHP file mit require einzubinden. Dazu hab ich mir ein kl. Script getippst: <? $u = $HTTP_GET_VARS["u"]; require($u); ?> so wenn ich jetzt das script (r.php) aufrufe kommt folgende meldung: Warning: open_basedir restriction in effect. File is in wrong directory in /usr/local/httpd/htdocs/kunden/web2/html/r.php on line 4 Fatal error: Failed opening required '1' (include_path='.:/usr/lib/php') in /usr/local/httpd/htdocs/kunden/web2/html/r.php on line 4 . Wie man sehen kann ist das ein Linux. In der PHP.INI ist "safe_mode" auf "OFF"! Ach ja das .INC.PHP -FIle das ich einbinden will liegt am gleichen server blos in einem anderem Webroot. Aufruf also: htp://meinserver.de/r.php?u=htp://meinserver_aber_andere_domain/inc.php weiß wer was? ciao r00t@l0calh0st Zitieren
root@localhost Geschrieben 14. Oktober 2002 Autor Geschrieben 14. Oktober 2002 keiner? wassn hier los Zitieren
etreu Geschrieben 14. Oktober 2002 Geschrieben 14. Oktober 2002 Dein include-Pfad ist falsch. In deiner php.ini steht ein andere Pfad als das aktuelle Verzeichnis. Problem 1: du must den neuen Pfad angeben ini_set("include_path","$Pfad") Problem 2: resultiert aus dem 1. -> du hast keinen Zugriff auf dieses Verzeichnis, da es außerhalb des Webservers liegt. Gib in deiner php.ini doch beim Eintrag include_path = "./" an, dann kannst du mir dem ersten Schritt auch probemlos arbeiten. ==> dies ist keine Hotline --> die Leute die Antworten tun dies wann sie wollen und können Zitieren
root@localhost Geschrieben 14. Oktober 2002 Autor Geschrieben 14. Oktober 2002 hi DANKE für deine antwort. in der php.ini steht gar nix von einem include_path bzw. es ist auskommentiert! wenn man die set_ini funktion aufruft wird das dann in der Datei php.ini geändert oder blos für das script das den befehl ausführt, geändert? hab leider die funktion im phpmanual nicht gefunden... ach ja und ==> dies ist keine Hotline --> die Leute die antworten, tun dies wann sie wollen und können soso wirklich, das is mir aber gaaanz neu.... tut mir leid das ich sooo aggressiv und soo provokant gepostet habe.... also jetzt wieda :e@sy merci ciao Zitieren
root@localhost Geschrieben 14. Oktober 2002 Autor Geschrieben 14. Oktober 2002 vorherige frage wegen set_ini hat sich erledigt. in der .ini -datei wird nichts geändert. so jetzt binde ich mit require($url) das .inc.php - script ein. aber ich kann leider noch nicht auf die variablen die darin festgelegt sind zugreifen. es gibt auch keine fehlermeldung mehr aus gar nix. die rechte auf das .inc.php script : -rw-r--r-- . müßte doch eigentlich hinhaun oder? danke für antworten ciao Zitieren
etreu Geschrieben 14. Oktober 2002 Geschrieben 14. Oktober 2002 Schreib mal was von deinem Code. Zitieren
root@localhost Geschrieben 14. Oktober 2002 Autor Geschrieben 14. Oktober 2002 was´n das für´n link also das script mit dem ich einbinden will is eh oben. das script das ich einbinden will sieht ungefähr so aus: <? $weeks=4; $vorschau=1; ?> das wars und wenn ich mir jetzt vom obigen script eine der beiden variablen ausgeben lassen will. kommt nix. vorschläge? Zitieren
etreu Geschrieben 14. Oktober 2002 Geschrieben 14. Oktober 2002 Hast du dir mal $u ausgeben lassen? Ist $u ein String ? Sonst fällt mir erst mal nix ein. Ich geb dir mal nen Auszug von mir: extract($_REQUEST); ini_set("include_path","./../CGI"); require("data.php"); [/PHP] Zitieren
root@localhost Geschrieben 14. Oktober 2002 Autor Geschrieben 14. Oktober 2002 $u ist gesetzt, da sonst require($u) fehlschlagen würde. $u wird (noch) als GET-Parameter mitgegeben: aufruf also meinscript.php?u=htp://mein_sörva_aber_andere_domain/inc.php also ist u : "htp://mein_sörva_aber_andere_domain/inc.php" an dem liegts also nicht . trotzdem danke für deine antworten was macht eigentlich "extract($_REQUEST);" ? ciao r~~t@l~calh~st Zitieren
Impulz Geschrieben 14. Oktober 2002 Geschrieben 14. Oktober 2002 Du darfst das einzubindenden File natuerlich nicht ueber http://.. includen, da es so zuerst vom Webserver geparst wird und dann das ergebnis (eine leere Seite) included wird. Benutz statt http:// einfach den Pfadnamen im System. Ach ja.. als tipp: Never Trust User Data :-) Soll heissen, keine Daten die User direkt eingeben koennen ungeprueft verwenden (in system(), include(), ... anweisungen). Michael Zitieren
root@localhost Geschrieben 14. Oktober 2002 Autor Geschrieben 14. Oktober 2002 aah ja . denkfehler von mir. wird ja dann vorher schon geparst. zszsz Never Trust User Data :-) ja danke aber da bin ich schon vorsichtig geworden. wenn man mal n´bisschen googelt findet man da die wildesten dinge mit php also ...php?file= oder ...php?path= usw. jeder weiß wahrscheinlich was man da dann machn kann.... (...passwd o. shadow holen... eigenen phpcode ausführen...) also danke für alle antworten ciao r°°t@l°calh°st Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.