我似乎无法让这种形式正常运作。我的网络脚本知识非常有限,因为我还是学生。我搜索并发现这个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>
答案 0 :(得分:2)
如果您在代码中的任何位置使用php,则无法将其另存为.html
文件。将其保存为.php
文件,然后Apache将调用PHP解释器。
答案 1 :(得分:1)
由于您将页面保存为.html
扩展名,因此很可能您的php未被处理。尝试将页面保存为.php