我在学习php。我正在阅读的书是“PHP和mysql web开发”。
对于Page394上的代码,它有如下错误: 你能告诉我什么是错的吗?
代码如下:
<?php
$name = $_POST['name'];
$password = $_POST['password'];
if ((!isset($name)) || (!isset($password)))
{
?>
<h1>Please log in<h1>
<p> This page is secret.</p>
<form method="post" action="secret.php">
<p>Username: <input type="text" name="name"></p>
<p>Password: <input type="password" name="password"></p>
<p><input type="submit" name="submit" value="Log in"></p>
</form>
<?php
}
else if (($name == "user") && ($password =="pass"))
{
echo "<h1>Here it is</h1>";
echo "<p>I bet you are glad you can see this secret page.</p>";
}
else{
echo "<h1> Go Away</h1>";
echo "<p>You are not authorized to use this </p>";
}
答案 0 :(得分:2)
你能告诉我出了什么问题吗?
你不够专心。你的书在行的开头有附加符号。
@ $name = $_POST['name'];
@ $password = $_POST['password'];
@
- 抑制错误。
我的建议:
请勿使用本书。它古老而丑陋。
答案 1 :(得分:1)
您应该测试$_POST
值,然后分配。你做的是反过来。
应该是这样的:
if(isset($_POST['name'], $_POST['password'])) {
$name = $_POST['name'];
$password = $_POST['password'];
// rest of code
}
答案 2 :(得分:1)
如果您要提交表单所在的同一页面,那么您应该这样做:
$name = isset($_POST['name']) ? $_POST['name'] : "";
$password = isset($_POST['password']) ? $_POST['password'] : "";
本机函数isset
检查变量是否存在。