- 此问题在此处已有答案**:
(41个答案)
昨天关门了。
我正尝试在PHP中做一个概念注册页面,我需要要求用户输入文本的所有输入。如果没有,它会说,例如,"你需要一个有效的电子邮件地址!"或类似的东西。
我的问题是让文本真正显示出来。当我提交的时候,它没有显示错误,而是停留在一个星号上。
我的代码:
<html>
<head>
<link rel="stylesheet" href="style.css">
<title>Test</title>
</head>
<body>
<?php
$emailErr = $usernameErr = $passwordErr = "";
$email = $username = $password = "";
if ($_SERVER["REQUIRED_METHOD"] == "POST") {
if (empty($_POST["email"])) {
$emailErr = "You must enter a valid email address!";
} else {
$email = testData($_POST["email"]);
}
if (empty($_POST["username"])) {
$usernameErr = "You must create a username!";
} else {
$username = testData($_POST["username"]);
}
if (empty($_POST["password"])) {
$passwordErr = "You must create a password!";
} else {
$password = testData($_POST["password"]);
}
}
function testData($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<p><span class="error">* Required Field(s)</span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<label for="email">Email Address:</label>
<span class="error">* <?php echo $emailErr;?></span>
<br>
<input type="email" name="email" placeholder="someone@organization.com" />
<br><br>
<label for="username">Username:</label>
<span class="error">* <?php echo $usernameErr;?></span>
<br>
<input type="text" name="username" />
<br><br>
<label for="password">Password:</label>
<span class="error">* <?php echo $passwordErr;?></span>
<br>
<input type="password" name="password" />
<br><br>
<input type="submit" value="Create Account!">
</form>
</body>
</html>
有谁能帮我找到解决我这种情况的办法吗?
3条答案
按热度按时间ar7v8xwq1#
它不是
$_SERVER["REQUIRED_METHOD"]
,它应该是$_SERVER["REQUEST_METHOD"]
,所以if条件块将是另外,另一种快速简便的调试方法是使用
var_dump()
,查看代码块是否正在执行,以及变量中是否设置了所需的数据。你也可以用
var_dump($_SERVER);
来快速检查这个超级全局变量有什么数据,或者在if块中有什么数据,这样你就可以确定真值条件是否通过了。xhv8bpkk2#
将
$_SERVER["REQUIRED_METHOD"]
的索引更改为REQUEST_METHOD
。有关详细信息,请访问https://www.php.net/manual/en/reserved.variables.server.php
aiazj4mn3#
$_SERVER["REQUIRED_METHOD"] == "POST"
将引发错误。$_SERVER["REQUEST_METHOD"] == "POST"
将是您问题的正确答案。