2013-12-12 25 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'); 
} 
?> 
相关问题