我目前正在处理三页代码,即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>
答案 0 :(得分:1)
我不知道您如何将用户引导到第三页。但是我认为问题出在第三页的第一行。用户不使用POST方法。
您可能需要删除if或实际上的前4行代码,当然还要删除if }
标签的结束。