我的脚本应该将用户登录到我的数据库中。
它通过检查用户名和密码是否与人员表上的行匹配来完成此操作。
如果发现用户名和密码确实存在,则会在cookie上存储用户名和密码。
我遇到的问题是用户没有登录。
通过echo方法识别出,单击按钮
后,以下变量具有以下值$ row = 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");
}
}
?>
答案 0 :(得分:3)
这一行:
$query = "SELECT Username, Password FROM staff WHERE `Username`='.$username.'";
需要:
$query = "SELECT Username, Password FROM staff WHERE `Username`='$username'";
由于您正在使用double-quotes
而PHP
正在解析双引号字符串中的$
值,因此无需连接字符串。
答案 1 :(得分:3)
对于初学者,您的$query
中包含不需要的字符(.
)。
"SELECT Username, Password FROM staff WHERE `Username`='.$username.'"
^ ^
应该是。
"SELECT Username, Password FROM staff WHERE `Username`= '$username'"
没有点。
答案 2 :(得分:2)
您的查询应该是:
$query = 'SELECT Username, Password FROM staff WHERE Username = ' . $username;
我建议将PDO(PHP数据对象)作为您正在使用的方法的替代方法并对变量进行参数化。
答案 3 :(得分:1)
$query = "SELECT Username, Password FROM staff WHERE `Username`='$username'";