HTML PHP自我表单验证错误

时间:2016-04-22 19:26:27

标签: php html

我似乎无法让这种形式正常运作。我的网络脚本知识非常有限,因为我还是学生。我搜索并发现这个Post Self Form Validation and Submission in PHP这个任务是一样的,但这个人有不同的问题。

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

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

编辑:@ Quentin - 这与标记为的重复文章无关。我没有运行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>

2 个答案:

答案 0 :(得分:2)

如果您在代码中的任何位置使用php,则无法将其另存为.html文件。将其保存为.php文件,然后Apache将调用PHP解释器。

答案 1 :(得分:1)

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