我一直在尝试设置一些东西来检查 HTML 表单,以确保在提交表单(到下一页)之前输入的文本字段至少有 1 个字符。
HTML 表单位于一页上,并流向第二页。然后第二页更新一个文本文件。一切正常,所以我不想改变它。但我需要的是验证器。
我搜索并阅读了许多建议,看到了一些使用 ISSET 的建议,并完成了下面的脚本。
但这不起作用(因为表单总是提交/没有错误消息)。我已经厌倦了许多其他建议(基于我读过的其他教程)。但似乎,无论文本字段是否为空,表单仍然会始终提交。(下一页有一个时间戳,所以我可以知道提交了什么。
有人能告诉我 Isset 在这种情况下是否可以工作吗?如果是这样,我哪里出错了。或者,如果没有,我可以使用什么来获取文本字段的验证器。我宁愿为此使用 PHP,但如果我需要使用 Javascript,这是可能的。
(补充:我认为问题是即使出现以下 $error 消息,它也永远不会出现,因为页面是通过提交按钮自动重定向的。我需要它类似于事件处理程序 - 例如,如果按钮提交点击,检查错误。如果有错误,打印它们。如果没有,提交表单。此代码不这样做)。
第 1 页代码。
<?php
if (isset($_POST['submit'])) {
$error = '';
if (trim($_POST['topic']) == '') {
$error = "Please enter a topic<br>");
}
if (trim($_POST['outline']) == '') {
$error = "Please enter an outline<br>";
}
if ($error == '') {
Echo "There are no errors";
} else {
echo "$error";
}
}
?>
<form style="" method="post" action="addtopic2.php">
Topic:<input name="topic" id="topicbox" maxlength="100" type="text">
Outline: <textarea input wrap="nowrap" rows="10" cols="120" name="outline">
</textarea><br><input name="submit" value="Submit" type="submit">
</form>
第 2 页代码
<?php
$b = time ();
$c = date("g:i:s A D, F jS Y",$b);
print "Topic and Outline Submitted at $c";
$t = "Topic:";
$o = "Outline:";
$d = "Time Date:";
$topic = $_POST['topic'];
$outline = $_POST['outline'];
$data = stripslashes("$t $topic | $o $outline | $d $c |\n");
$fh = fopen("users.txt", "a");
fwrite($fh, $data);
fclose($fh);
?>