HTML PHP 自表单验证错误


HTML PHP self form validation error

我似乎无法让这个表格正常工作。我的 Web 脚本知识非常有限,因为我还是一名学生。我在PHP中搜索并找到了这个帖子自我表单验证和提交,这是相同的任务,但是这个人有不同的问题。

出于某种原因,当我尝试测试我的页面"> 名称:显示为我的第一行,但">是 html 表单开始标签的结束。

我也有一个.html,因为我想把它作为一个文档提交,而不是将 PHP 代码放在单独的.php文档中。

编辑:@昆汀 - 这与标记为的重复文章无关。我没有运行Apache服务器。那个人通过重新启动 XAMPP 服务解决了他的问题,我是 Windows 10,不可能让该服务运行。

我希望它从一个文档上运行,因此我为什么要使用 PHP_SELF。当我将文件另存为.php时,它除了显示代码外什么都不做。

我确实检查了Chrome中的代码,这是我知道如何调试它的唯一方法。而且我找不到任何问题。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Assignment 6.2 PHP Validation</title>
</head>
<body>
<?php
// define variables and set to empty values
$nameErr = $addressErr = $phoneErr = $zipErr = "";
$name = $address = $phone = $zip = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
 if (empty($_POST["name"])) {
  $nameErr = "Name is required";
  } else {
  $name = test_input($_POST["name"]);
 // check if name only contains letters and whitespace
  if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
  $nameErr = "Only letters and white space allowed"; 
  }
 }
 //check name field
if (empty($_POST["address"])) {
$emailErr = "Address is required";
} 
// check phone number field
 if (empty($_POST['phone'])) {
 $phoneErr = "Phone number is required";
 } else {
 $phone = test_input($_POST['phone']);
if(!preg_match("/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/", $phone)) {
$phoneErr = "must be in ddd-ddd-dddd format";
}
}
//check zip code field
if (empty($_POST['zip'])) {
$zipErr = "Zip code is required";
} else {
$zip = test_input($_POST['zip']);
if(!preg_match("/^[0-9]{5}-[0-9]{4}$/", $)) {
 $zipErr = "Zip code must be in ddddd-dddd format";
}
}
?>

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
Address:
<input type="text" name="address">
<span class="error">* <?php echo $addressErr;?></span>
<br><br>
 Phone Number:
 <input type="text" name="phone">
 <span class="error"><?php echo $phoneErr;?></span>
 <br><br>
 Zip Code:
 <input type="text" name="zip">
 <span class="error"><?php echo $zipErr;?></span>
 <br><br>
 <input type="submit" name="submit" value="Submit"> 
 </form>

 </body>
</html>

如果你在代码中的任何位置都有 php,它就不能保存为.html文件。将其保存为.php文件,然后 Apache 将调用 PHP 解释器。

由于您将页面另存为.html扩展名,因此很可能您的 PHP 未被处理。尝试将页面另存为.php