2017-08-18 3 views
-1

Ich lese viele der anderen Fragen auf dieser Website rund um diesen Fehler, von denen keiner konnte mir helfen, Der folgende PHP-Code nimmt die Dateneingabe von der HTML-Datei und sendet es an die PHP-Datei, nach dem Drucken "Hello Name" auf der Seite, sollte es eine Datei namens My_file.txt öffnen, die bereits erstellt wurde, und schreiben Sie daran, ich konnte dies nicht tun, wäre jede Hilfe groß , hier ist mein Code:Nicht schreiben (oder sogar Datei öffnen) in PHP

Datei index.html:

<html> 
<head><title>Hello Friend</title></head> 
<body bgcolor="black"> 
<p style="text-align:center"> 
<font color="white"> 
<form action="data.php" method="post"> 
    <input type="text" name="myname" id="myname"> 
    <input type="submit" value="Submit"> 
</form> 
</body> 
</html> 

data.php Datei:

<html> 
<head> 
<title>Hello Friend, this is php</title> 
</head> 
<body bgcolor="black"> 
<font color="white"> 
<code> 
<?php 
    $name = $_POST["myname"]; 
    echo "Hello, " . $name; 
    $filename = "My_file.txt"; 
    chmod($filename, 777); 
    $f = fopen($filename, "w") or die("Unable to open file"); 
    fwrite($f, "The Name is: " . $name); 
    f.close($f); 
    echo fgets($f); 
    fclose($f); 
?> 

Ausgang:

Hello, JohnUnable to open file 
+1

Haben Sie die Fehlerberichterstattung aktiviert? – Machavity

Antwort

0

Sie wollen für Write-Datei zu öffnen. Stellen Sie sicher, dass die Datei von diesem PHP-Prozess beschreibbar ist. Überprüfen Sie Ihre http-Server-Rechte für den Skriptordner, in dem data.php angezeigt wird. Aktivieren Sie auch ausführlichere PHP-Fehler, dies kann mit vielen Dingen zusammenhängen (vielleicht Ihr Hosting deaktiviert fopen-Funktion).

+0

Ich bin unter Linux Ich habe php & apache2 über apt-get install installiert, ich sehe keine Debug-Option, wie würde ich dabei gehen? –

+0

Ich würde vorschlagen, etwas wie 'chmod -R 777/var/www' zu Testzwecken zu machen. Wenn es funktioniert - dann gibt es ein Berechtigungsproblem, das Sie später beheben können. Schauen Sie sich '/ var/log/apache2/*' Dateien an, vielleicht können Sie etwas inspizieren. –