2017-01-10 8 views
0

Ich versuche, in eine zufällige Datei mit PHP zu schreiben. PHP-Skript befindet sich in/var/www/html/ die zufälligen Dateien, die ich versuche create befindet sich in/var/www/html/print-Ordner.PHP fopen Pfad funktioniert nicht

ich folgende Javascript bin mit

<button id="button1" type="button">Write to File</button> 
<script type='text/javascript'> 
    $('#button1').click(function() { 
     $.ajax({ 
      type: "POST", 
      url: "printed.php", 
      data: "", 
      success: function(msg) { 
       alert(msg); 
      }, 
      error: function(XMLHttpRequest, textStatus, errorThrown) { 
       alert("Some error occured"); 
      } 
     }); 
    }); 
</script> 

und folgende PHP-Dateien zu schreiben.

<?php 
$filename = rand(5, 15); 
$path = "/print/" 
@ $fp = fopen("$path""$filename", "wb"); 
if (!$fp) { 
    echo '<p><strong>Cannot generate message file</strong></p></body></html>'; 
    exit; 
} else { 
    $outputstring = 'Hello, i have been generated by the button'; 
    fwrite($fp, $outputstring); 
    Echo "Message inserted"; 
} 
?> 

Wenn ich in PHP-Datei verwenden Sie den Pfad nicht erfolgreich erstellt, sondern in/var/www/html Ordner, möchte ich die Dateien in/var/www/html/print-Ordner erstellt werden.

Aber wenn ich den Dateipfad verwende, erhalte ich folgende Fehler in den Protokollen.

PHP Parse error: syntax error, unexpected '@' in /netboot/var/www/html/printed.php on line 4

+0

Sie auf Linie 4. Es ist entweder Faulheit oder Müdigkeit ein Semikolon in Zeile 3, und ein Komma fehlt. – shalvah

+0

Ihnen fehlt die Dateierweiterung der Datei, in die Sie auch schreiben möchten. – J2D8T

Antwort

2

Sie haben vergessen, Semikolon (;) hinzuzufügen.

ändern

$path = "/print/" 
@ $fp = fopen("$path""$filename", "wb"); 

Zu diesem

$path = "/print/"; 
@ $fp = fopen("$path" . "$filename", "wb"); 
+1

Ja du hast Recht, das funktioniert jetzt. – user2107349

+0

Sie können Ihre Antwort ändern, um das Hinzufügen des '.' zu erwähnen –

2

Sie haben einen Fehler in der Syntax.

@ $fp = fopen("$path""$filename", "wb"); 

Korrekte Aussage.

@ $fp = fopen("$path"."$filename", "wb"); 

Hoffe, das wird Ihnen helfen.

+0

Nein, das funktioniert nicht, ich bekomme die gleiche Fehlermeldung. – user2107349

+0

Das funktioniert tatsächlich, ich habe das Semikolon Ende der Variablen $ path verpasst. – user2107349