使用PHP附加到文本文件,并在浏览器的HTML表中输出数据(NO MYSQL)

时间:2018-08-29 12:58:31

标签: php html

我目前正在处理三页代码,即1个HTML和2个PHP。当用户提交名字,姓氏和年龄时,它应该显示在第一个PHP页面上并输出一个字符串,感谢他们输入信息,然后同时将HTML表单数据添加为1)附加到我硬盘上的文本文件中, 2)在第3个PHP页面中输出到浏览器上的HTML表。我在将用户数据输出到第3个PHP页面时遇到麻烦。我的代码也没有收到任何错误,因此很难查明问题所在。为什么我的代码没有将数据追加到PHP第三页的HTML表中?

HTML

<form action="page2.php" method="post" name="form">
    <p>Enter your info</p>

    <p>First Name:<br>
    <input type="text" name="firstname" id="firstname">
    </p>

    <p>Last Name:<br>
    <input type="text" name="lastname" id="lastname">
    </p>

    <p>Age:<br>
    <input type="text" name="age" id="age" size="3">
    </p>

PHP第2页

if(isset($_POST['submit'])){
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$age= $_POST['age'];}

$filename ='files/addusers.txt';
 $fp = fopen($filename, 'a');
      $text = $firstname. '|' . $lastname. '|' . $age. '|' . "\n";
      fwrite($fp, $text);
      fclose($fp); 

PHP / HTML页面3

 if(isset($_POST['submit'])){
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$age= $_POST['age'];

$filename ='files/addusers.txt';

?>

<table border = '1'>
    <tr>
        <th>Last Name</th>
        <th>First Name</th>
        <th>Age</th>
    </tr>

<?php

/*Insert User Info to HTML table*/
$output_results = "";
$cntr = 0;

$fp = fopen($filename, 'r');


while(true){
   $line = fgets($fp);

   if (feof($fp))
   {
       break;
   }

   $cntr++;

list($lastname, $firstname, $email, $bYear, $city) = explode('|', $line);



 $output_results .= "<tr>";
       $output_results .= "<td>".$lastname."</td>";
       $output_results .= "<td>".$firstname."</td>";
       $output_results .= "<td>". $age."</td>";
      $output_results .= "</tr>\n";  



  }


fclose($fp);
print $output_results;
}//END OF ISSET
?>
            </table>

1 个答案:

答案 0 :(得分:1)

我不知道您如何将用户引导到第三页。但是我认为问题出在第三页的第一行。用户不使用POST方法。

您可能需要删除if或实际上的前4行代码,当然还要删除if }标签的结束。