【发布时间】:2016-06-27 17:34:21
【问题描述】:
<!DOCTYPE HTML>
<html>
<head>
<title>Sign-In</title>
</head>
<body>
<form method="POST" action="home.php">
User: <br><input type="text" name="username" size="40"/><br />
Password: <br><input type="password" name="password" size="40"/><br />
<input type="submit" name="submit" value="Log-In" />
</form>
</body>
</html>
<?php
error_reporting(E_ALL);
if (isset($_POST['submit']))
{
mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db('cheapbooks');
echo "connected to DB";
$username = $_POST["username"];
$password = $_POST["password"];
$query = mysql_query("SELECT * FROM customer WHERE username='".$username."' AND password='".$password."' ");
$numrows = mysql_num_rows($query);
if($numrows!=0)
{
while($row = mysql_fetch_assoc($query))
{
$dbuser = $row['username'];
$dbpass = $row['password'];
}
if($username == $dbuser && $password == $dbpass)
{
session_start();
$_SESSION['sess_user']=$username;
echo "Logged in successfully";
//header("Location: home.php"); //Redirecting to home page after login
}
else
{
echo "Invalid username or password!";
}
}
else
{
echo "Failed........";
}
}
else
{
echo "NO Action!!!";
}
?>
我已经编写了这段代码来创建登录表单。当我在浏览器中打开表单时,它显示“无操作!!!”这是最后一个else中的语句。我无法弄清楚错误,为什么它不检查 if (isset($_POST['submit']))
【问题讨论】:
-
首次加载页面时,在表单发布之前,
$_POST未定义。因此,isset($_POST['submit'])为 false,并且显示您的“无操作”消息。 -
一个更典型的例子应该告诉大家最终停止将表单和处理逻辑放在同一个脚本中的愚蠢习惯。不!它只会制造问题!
-
向@arkascha 弟兄传道!传道!
-
删除
else部分或将您的表单处理逻辑放到不同的脚本中 -
停止使用
mysql_*,它已被sinds php 5.5 弃用,并在php 7.0 中完全删除。请改用mysqli_*或PDO