Ich habe kürzlich einen seltsamen Fehler beim Erstellen einer super-einfachen "Admin-Seite" für eine Website, die ich gerade mache, festgestellt. Da ich relativ neu bin, bin ich auf eine ganze Reihe von Fehlern gestoßen, habe sie aber alle behoben, bis auf einen Fehler.Warnung: fopen (FILE): Fehler beim Öffnen des Streams: Kein Fehler in CURRENT FILE
Der Teil des Codes verwendet, um eine neue Datei sieht wie folgt aus zu erstellen:
$message = '"' . $file_location . $file_name . '" successfully created.';
$file = fopen($file_location . $file_name, 'w+');
if ($file) {
fwrite($file, $file_content);
if (fwrite($file, $file_content)) {
fclose($file);
}
else {
$message = 'ERROR : File contents could not be written in "' . $file_location . $file_name . '" .';
}
}
else {
$message = 'ERROR : Could not create "' . $file_location . $file_name . '" .';
}
Zum Beispiel
$file_location
/some/path/
- könnte
$file_name
sein könntefile.php
$file_content
könnteBap a doo bap, I teach you how to buy a CANOEEE !!1
sein
(bitte beachten Sie, ich WAMP
mit einem virtual host
verwende, so ist die Verwendung von absoluten Pfaden bestimmt) Ich verstehe nicht
Aus irgendeinem Grund gab es mir den folgenden Fehlercode:
Warning: fopen(/path/to/new-file.php): failed to open stream: No such file or directory in C:\path\to\current-file.php on line XXX
Zuerst dachte ich nur, dass dies ein weiterer meiner dummen Fehler war, aber nachdem ich den Code mehrmals überprüft und über das Problem nachgedacht hatte, konnte ich es einfach nicht herausfinden.
entschied ich mich dann nur den problematischen Code enthält eine andere Datei zu erstellen:
gab mir<?php
$file_name = test.php
$file_location = /file/location/
file = fopen($file_location . $file_name, 'w+')
?>
, die nur den gleichen Fehler noch ein, so habe ich beschlossen, den Code zu den absoluten Grundlagen strippen, während auch der Verwendung von include
Funktion hatte ich bereits verwendet, nur um zu überprüfen, ob das noch in Betrieb war:
<?php
$include('file.php')
fopen('file.php, 'w+')
?>
(im Auge behalten habe ich erstellt eine andere file.php
Datei im root
)
Während die include
Funktion funktioniert hat, bekam ich folgende Fehlermeldung, die im Grunde mich versuchen gemacht zu verlassen, das Problem zu lösen:
Warning: fopen(file.php): failed to open stream: No error in C:\path\to\file.php on line XXX
ich alle um die WEB geschaut haben, kann aber nichts finden. Dies macht es mir grundsätzlich unmöglich, ANY FILE mit PHP
zu erstellen/ändern.
die erste Warnung sagt "keine solche Datei oder Verzeichnis" was bedeutet, dass der Pfad falsch ist :) – niceman
Strings müssen zitiert werden, $ foo = "test.php", nicht $ foo = test.php. PHP wird wahrscheinlich auf den Systemstamm verweisen, wenn Sie "/ path/here" verwenden.Wahrscheinlich möchten Sie das DOCUMENT_ROOT des Servers, das Sie von einer Servervariablen auf vielen Servern ($ _SERVER ['DOCUMENT_ROOT']) erhalten können. –
Sie 'fwrite()' zweimal auch. –