2013-12-12 26 views
0

我想知道如何使用PHP將信息從HTMLform發送到文本文件。我目前的代碼沒有向文本文件添加任何內容。 HTML和PHP文件如下。希望有人可以幫助我,如果需要更多信息,請讓我知道,我會在評論中爲您提供信息。發送信息從HTML表單到使用PHP的文本文件

HTML

<form action="results.php" method="post"> 
    <table border="1"> 
     <tr> 
      <th colspan="7">Survey (CSC443)</th> 
     </tr> 
     <tr> 
      <td rowspan="2">#</td> 
      <td rowspan="2">Question</td> 
      <td>Strongly</td> 
      <td>Somewhat</td> 
      <td></td> 
      <td>Somewhat</td> 
      <td>Strongly</td> 
     </tr> 
     <tr align="center"> 
       <td colspan="2">Disagree</td> 
       <td>Neutral</td> 
       <td colspan="2">Agree</td> 
     </tr> 
     <tr> 
      <td>1</td> 
      <td>This course helped me develop problem-solving skills.</td> 
      <td align="center"><input type="radio" name="q1" value="1"></td> 
      <td align="center"><input type="radio" name="q1" value="2"></td> 
      <td align="center"><input type="radio" name="q1" value="3" checked></td> 
      <td align="center"><input type="radio" name="q1" value="4"></td> 
      <td align="center"><input type="radio" name="q1" value="5"></td> 
     </tr> 
     <tr> 
      <td>2</td> 
      <td>This course was very challenging.</td> 
      <td align="center"><input type="radio" name="q2" value="1"></td> 
      <td align="center"><input type="radio" name="q2" value="2"></td> 
      <td align="center"><input type="radio" name="q2" value="3" checked></td> 
      <td align="center"><input type="radio" name="q2" value="4"></td> 
      <td align="center"><input type="radio" name="q2" value="5"></td> 
     </tr> 

     <tr> 
      <td>3</td> 
      <td>My programming ability increased after aking this course.</td> 
      <td align="center"><input type="radio" name="q3" value="1"></td> 
      <td align="center"><input type="radio" name="q3" value="2"></td> 
      <td align="center"><input type="radio" name="q3" value="3" checked></td> 
      <td align="center"><input type="radio" name="q3" value="4"></td> 
      <td align="center"><input type="radio" name="q3" value="5"></td> 
     </tr> 
     <tr> 
      <td>4</td> 
      <td>I will list 'Javascript' on my resume.</td> 
      <td align="center"><input type="radio" name="q4" value="1"></td> 
      <td align="center"><input type="radio" name="q4" value="2"></td> 
      <td align="center"><input type="radio" name="q4" value="3" checked></td> 
      <td align="center"><input type="radio" name="q4" value="4"></td> 
      <td align="center"><input type="radio" name="q4" value="5"></td> 
     </tr> 
     <tr align="center"> 
      <td colspan="2"></td> 
      <td>1</td> 
      <td>2</td> 
      <td>3</td> 
      <td>4</td> 
      <td>5</td> 
     </tr> 
     <tr> 
      <td colspan="7" rowspan="2" align="center"><input type="submit" value="Submit"> <input type="reset" value="Reset"></td> 
     </tr> 
    </table> 
</form> 

PHP

if(isset($_POST['q1'] && isset($_POST['q2'] && isset($_POST['q3'] && isset($_POST['q4']) 
{ 
    $q1 = $_POST['q1']; 
    $q2 = $_POST['q2']; 
    $q3 = $_POST['q3']; 
    $q4 = $_POST['q4']; 

    $text = $q1 . "," . $q2 . "," . $q3 . "," . $q4 . "\n"; 
    $ret = file_put_contents('/results.txt', $text, FILE_APPEND | LOCK_EX); 

    if($ret === false) { 
     die('There was an error writing this file'); 
    } 
    else { 
     echo "$ret bytes written to file"; 
    } 
} 
else { 
    die('no post data to process'); 
} 
+1

您是否收到任何錯誤或任何輸出/反饋? – DrCord

+0

首先,刪除'//results.txt'中的'/',然後從'.txt'文件的相同文件夾中運行您的代碼。絕對路徑不適用於此。如果這是您需要做的,請改用相對路徑。檢查文件權限。 「0644」或「0777」 - 「0644」更安全。 –

+0

有時,Websuser對您要將文件寫入的文件夾具有寫入權限。 – jjs9534

回答

0

問題是這條線,在那裏你有幾個缺少)的圓括號。

if(isset($_POST['q1'] && isset($_POST['q2'] && isset($_POST['q3'] && isset($_POST['q4']) 

       ----)     ----)     ----)     ----) 

將其替換爲:

if(isset($_POST['q1']) && isset($_POST['q2']) && isset($_POST['q3']) && isset($_POST['q4'])) 

此外,可能還有其他的問題。在results.txt

  • 注意

    $ret = file_put_contents('results.txt', $text, FILE_APPEND | LOCK_EX); 
    

    沒有/:我(成功)測試此使用使用相對路徑,而不是絕對路徑。

設置文件權限爲0644是一種比0777更安全的方法,如果您需要設置文件。


重寫:(來自同一個文件夾中的文本文件中運行代碼)

如果您的文件位於下一層,從執行的文件夾,使用'../results.txt'視的位置執行代碼和文本文件。

<?php 

if(isset($_POST['q1']) && isset($_POST['q2']) && isset($_POST['q3']) && isset($_POST['q4'])) 
{ 
    $q1 = $_POST['q1']; 
    $q2 = $_POST['q2']; 
    $q3 = $_POST['q3']; 
    $q4 = $_POST['q4']; 

    $text = $q1 . "," . $q2 . "," . $q3 . "," . $q4 . "\n"; 
    $ret = file_put_contents('results.txt', $text, FILE_APPEND | LOCK_EX); 

    if($ret === false) { 
     die('There was an error writing this file'); 
    } 
    else { 
     echo "$ret bytes written to file"; 
    } 
} 
else { 
    die('no post data to process'); 
} 

?> 
0

,我們在您result.php一些小的錯誤,這裏是固定的PHP代碼

<?php 
if(isset($_POST['q1']) && isset($_POST['q2']) && isset($_POST['q3']) && isset($_POST['q4'])) 
    { 
    $q1 = $_POST['q1']; 
    $q2 = $_POST['q2']; 
    $q3 = $_POST['q3']; 
    $q4 = $_POST['q4']; 

    $text = $q1 . "," . $q2 . "," . $q3 . "," . $q4 . "\n"; 
    $ret = file_put_contents('results.txt', $text, FILE_APPEND | LOCK_EX); 

    if($ret === false) { 
    die('There was an error writing this file'); 
    } 
    else { 
    echo "$ret bytes written to file"; 
    } 
} 
else { 
    die('no post data to process'); 
} 
?> 
相關問題