Warning: include(../config/config.php) [function.include]: failed to open stream PHP
ich bin immer folgenden Fehler in meiner PHP-Datei.
Warning: include(../config/config.php) [function.include]: failed to open stream: No
such file or directory in C:\xampp\htdocs\my-proj\functions\function.php on line 2
lassen Sie mich beschreiben, meine Ordner-Struktur
- ROOT-Ordner /index.php
- Funktionen /function.php
- config /config.php
- signup /signup.php
nun, Wenn ich den absoluten Pfad, dann ist es den gleichen Fehler in signup.php und wenn ich einen relativen Pfad dann es gibt diesen Fehler in index.php
jede mögliche Hilfe würde geschätzt.
- wenn Sie wissen, die Frage warum nicht Sie die Antwort akzeptieren? ist es, weil Sie didn;t erhalten keine Lösung für deine Frage?
Du musst angemeldet sein, um einen Kommentar abzugeben.
verwenden
Die Datei Pfade sind relativ zum aufgerufen Skript. Wenn Ihre Anwendung wird aufgerufen durch die http-Anfragen an
index.php
, dann dieinclude()
Pfad muss relativ zu, dass - selbst wenn die include-Anweisung selbst befindet sich in der functions.php script.Einer gemeinsamen Problemumgehung ist, um alle Pfade, absolute in Bezug auf die Dokument-root:
Das wäre in index.php und functions.php gleichermaßen.
include_path=
erleichtern den Umgang mit den dazugehörigen Skripten. Ich habe Ihnen gerade die DOCUMENT_ROOT Ansatz, denn das erklärt auch den root-Ordner Problem ich vermutete in deiner Frage.include("$_SERVER[DOCUMENT_ROOT]/my-proj/config/config.php");
set_include_path()
- option. Das könnte deutlich angenehmer, je mehr Skripte, die Sie einem Projekt hinzufügen.Verwenden
include __DIR__."/../config/config.php";
wenn Sie möchten, um eine Datei relativ zur Datei, die Sie gerade ausführt. Wenn Sie eine php-version älter als 5.3.0 (sollten Sie nicht), ersetzen__DIR__
mitdirname(__FILE__)
.$_SERVER['DOCUMENT_ROOT']
ist nicht gesetzt, wenn mit Kommandozeile und setzt Voraus, dass Ihr Projekt ist relativ zum DOCUMENT_ROOT statt, das dem Benutzer erlaubt, um es zu platzieren, wo immer Sie bitte. Wenn phpMyAdmin verwendet diese variable, Sie würden gezwungen werden, um Platz für Sie, anstatt nur platzieren Sie es, wo immer Sie wollen. Das ist eine andere Sache, es ist eine variable, so gibt es potenzielle Sicherheitsprobleme zu.Wenn config.php notwendig ist, schlage ich vor, mit
require
statt, ansonsten verwenden Sieif (file_exists($file)) {require $file;}
so können Sie vermeiden, Warnungen, wenn es nicht vorhanden ist, und erhalte eine Fehlermeldung, wenn es nicht gelesen werden kann (ich nehme an, wenn es vorhanden ist, ist es verwendet werden soll).