我创建了一个 PHP 页面(参见下面的代码),该页面应该在提交之前验证输入到 web 表单中的信息,以确保所有字段都已完成。如果任何字段留空,则应该显示错误消息;如果所有字段都已填写,则应该将数据发送到 .csv 文件。问题是它没有验证字段,也没有将数据发送到 .csv。我尝试删除 .csv 然后提交网络表单;它创建一个用逗号分隔条目的 .csv,但没有条目(即没有文本,只有逗号)。
有人知道为什么会这样吗?
任何援助将不胜感激。
提前致谢!
这是代码:
<form action="form_mailer.php" method="post">
<table>
<tr><td>Which is your name?</td>
<td><input type="text" name="formName" maxlength="50" value="<?=$varName;?>"></td></tr>
<tr><td>What is your occupation?</td>
<td><input type="text" name="formOccupation" maxlength="50" value="<?=$varOccupation;?>"></td></tr>
</table>
<input type="submit" name="formSubmit" value="Submit">
</form>
<?php
if($_POST['formSubmit'] == "Submit")
{
$errorMessage = "";
if(empty($_POST['formName']))
{
$errorMessage .= "<li>You forgot to enter your name!</li>";
}
if(empty($_POST['formOccupation']))
{
$errorMessage .= "<li>You forgot to enter your occupation!</li>";
}
$varName = $_POST['formName'];
$varOccupation = $_POST['formOccupation'];
if(!empty($errorMessage))
{
echo("<p>There was an error with your form:</p>\n");
echo("<ul>" . $errorMessage . "</ul>\n");
}
}
?>
<?php
if($errorMessage != "")
{
echo("<p>There was an error:</p>\n");
echo("<ul>" . $errorMessage . "</ul>\n");
}
else
{
$fs = fopen("data.csv","a");
fwrite($fs,$varName . ", " . $varOccupation . "\n");
fclose($fs);
}
?>
更新:
你好,
非常感谢您的回复。
我已经意识到我现在哪里出错了............我的表单操作为“form_mailer.php”,它不是表单页面本身,而是另一个页面,它使用提供的数据执行进一步的操作网络表单。
我现在已经将“form_mailer”编码带入 webform .php 并更改了 webform 页面的“操作”,以便它有效地提交给自己,但现在我需要在成功提交 webform 后重定向到 form_mailer 页面或显示感谢信息........不要以为有人知道我该怎么做吗? 如果您可以提供有关如何同时执行这两种操作的说明,那将是很好的,因为我可以选择最适合我需要的一种。
再次感谢!