2016-06-24 3 views
0

Hier ist meine Form, in index.php:Ich versuche eine Webseite mit einem PHP-Formular zu erstellen. Was ist falsch an meinem Code?

<form method="post" action="newpage.php"> 
    File name: <input type="text" name="filename"><br/> 
    File extension: <input type="text" name="fileext"><br/> 
    Title: <input type="text" name="title"><br/> 
    Body: <textarea style="height: 3em; width: 50em;" name="body"></textarea> 
    <input type="submit"> 
</form> 

Wie Sie sehen können, diese Strecken die Ergebnisse zu newpage.php. Hier ist newpage.php:

<?php 
    $file = "/app/filecreation/newfiles/" . $_POST["filename"] . "." . $_POST['fileext']; 
    $writefile = fopen($file, 'w') or die('unable to open'); 
    $code = "<html><body><h1><?php echo $_POST['title']; ?></h1><p><?php echo $_POST['body]; ?></body></html>"; 
    fwrite($writefile, $code); 
    fclose($writefile); 
?> 

Ich versuche, eine Datei zu erstellen, wenn die index.php Formular abgeschickt wird. Aus irgendeinem Grund erstellt es keine Datei so, wie ich es möchte. Ist etwas falsch mit diesem Code, dass es nicht funktioniert?

Pls helfen !! Vielen Dank!

+0

Es ist ** sehr ** unwahrscheinlich, dass '/ app/filecreation/newfiles /' ist ein gültiger Pfad. Führe 'echo getcwd();' durch, um zu sehen, in welchem ​​Pfad sich deine PHP-Datei befindet, und arbeite von dort aus. Schalten Sie Ihre PHP-Fehlerberichterstattung ein, damit Sie die Gründe dafür sehen können. – ceejayoz

+0

@ceejayoz danke. Ich werde das untersuchen. Übrigens, sieht alles andere gut aus? – Matt

+0

Verwenden Sie einfache Anführungszeichen oder setzen Sie '$ _POST ['title']', und '$ _POST ['body']' in Anführungszeichen. Wenn PHP also erneut ausgeführt wird, ist es gültig. Ich hoffe auch, dass dies der Öffentlichkeit nicht zugänglich ist. Außerdem muss die Datei die 'PHP'-Erweiterung haben, um sie als PHP auszuführen, also haben Sie vielleicht nicht' $ _POST ['filetext'] 'und setzen Sie statisch' .php'. Setzen Sie die POSTs auch in komplexe Daten oder verketten Sie sie. – chris85

Antwort

0

Hallo Sie haben error in Ihrer Linie bitte Ihre Linie mit dieser Änderung $file in

$code = "<html><body><h1><?php echo '".$_POST['title']."' ?></h1><p><?php echo '".$_POST['body']."' ?></body></html>"; 

auch sicherstellen, dass file_exist nach Pfad

$code = "<html><body><h1><?php echo $_POST['title']; ?></h1><p><?php echo $_POST['body]; ?></body></html>"; 

ändern. Sie können dies tun

if(file_exist($file)){ 
write your code here.... 
} 
else{ 
echo "file not exist"; 

}