【发布时间】:2015-05-03 02:47:50
【问题描述】:
我的脚本应该将用户登录到我的数据库中。
它通过检查用户名和密码是否与员工表上的一行匹配来做到这一点。
如果发现用户名和密码确实存在,它将用户名和密码存储在 cookie 中。
我遇到的问题是用户没有登录。
已通过echo方法识别出以下变量在点击按钮时具有以下值
$行 = 0 $username = 表单上用户名字段中的任何内容
这似乎表明查询有问题
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
$dbname = 'the_shop';
mysql_select_db($dbname);
if(isset($_GET['submit']))
{
$username = $_GET['username'];
$password = md5($_GET['password']);
echo "$username + $password <br />";
// insert user into db
// $sql = "INSERT INTO `logindb`.`users` (`id`, `username`, `password`) VALUES (NULL, '".$username."', '".$password."');";
// echo $sql;
// $result = mysql_query($sql);
// getting user from db
$query = "SELECT Username, Password FROM staff WHERE `Username`='.$username.'";
$result = mysql_query($query)
or die(mysql_error());
$num=mysql_numrows($result);
echo $num;
if($num <= 0) {
echo "login not successful";
echo "$username";
}
else
{
$_SESSION['username'] = '$username';
$_SESSION['password'] = '$password';
//header("Location:Admin_Control_panel.php");
}
}
?>
【问题讨论】:
-
Please, don't use
mysql_*functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解 prepared statements,并使用 PDO 或 MySQLi - this article 将帮助您决定哪个。 -
mysql_num_rows($result);不是mysql_numrows,但无论如何你都应该使用mysqli。 -
为什么只查用户名,不查密码?
-
我知道这个问题,但是在我的作业必须提交之前我只剩下几天了,所以我没有时间学习如何使用准备好的语句。我正在为我最后一年的项目做类似的事情,并打算使用准备好的陈述,然后至少可以说我被教导过时的图书馆是很烦人的。 @Dagon,因为我正在尝试将其排序为用户名 1st。
-
好吧,小伙子下次早点开始你的作业:-)