非常简单的PHP + MySql登录表单不起作用?

Ada*_*hur 0 html php mysql login

我目前正在构建一个非常非常基本的登录脚本,它基本上连接到数据库,并检查用户在表单中输入的值是否匹配.但是,出于某种原因,我的代码REFUSES在单击提交按钮时执行任何操作!! ?? 这是代码......

<?php
mysql_connect("localhost", "username", "password");
mysql_select_db("dbname");
?>

<body>
<?php
if(isset($_POST['submit'])){
$username = $_POST['username'];
$password = $_POST['password'];

$result = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password'");
$num = mysql_num_rows($result);
if($num == 0){
echo "Bad login, go <a href='login.php'>back</a>.";
}else{
session_start();
$_SESSION['username'] = $username;
header("Location: admin.php");
}


}else{
?>


<form action='login.php' method='post'>
   Username: <input type='text' name='username' /><br />
   Password: <input type='password' name='password' /><br /><br />
   <input type='submit' value='Login' />
</form>
<?php
}
?>
</body>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Dav*_*dom 7

你正在检查

if(isset($_POST['submit'])){
Run Code Online (Sandbox Code Playgroud)

...但$_POST['submit']永远不会被设置,因为您没有为任何表单控件提供name="submit"属性.

将提交按钮更改为:

<input type='submit' name='submit' value='Login' />
Run Code Online (Sandbox Code Playgroud)

还请清理您的数据库输入,最好是通过参数化查询.

  • 只是将请求转发到[转义数据库输入](http://bobby-tables.com/).这非常重要. (3认同)