我有一个登录表单,其内容为
<h1>Log In</h1>
<div style="width: 80%;margin-right: auto;margin-left: auto">
<form action="checklogin.php" method="POST">
<p>
User ID:<br />
<input type="text" name="username"><br />
Password:<br />
<input type="password" name="pass" ><br />
<br />
<input type="submit" value="Login">
然后进行如下验证
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$username = mysql_real_escape_string($username);
$pass = mysql_real_escape_string($pass);
SELECT * FROM $tbl WHERE username='$username' and pass= SHA1('$pass');
//$result=mysql_query($sql);
$result=mysql_query($sql, $connect) or die(" Could not execute query");
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
我知道与服务器的联系是正确的,因为我已经测试了那个位的错误,但无论我尝试什么,我都无法通过语句
“无法执行查询”
表格标题为username
和pass
,密码在服务器上加密。
我是新手,就这一点而言,无法理解PHP手册。
主持人是1and1
,他们使用Apache server
答案 0 :(得分:1)
您没有将查询放在字符串中
你没有正确传递你的价值
您尚未关闭HTML
中的<form>
标记
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$username = mysql_real_escape_string($_POST['username']);
$pass = mysql_real_escape_string($_POST['pass']);
$sql = "SELECT * FROM $tbl WHERE username='$username' and pass= SHA1('$pass')";
$result=mysql_query($sql, $connect) or die(" Could not execute query");
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
你也应该使用mysqli,而不是不推荐使用mysql。
答案 1 :(得分:0)
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$username = mysql_real_escape_string($username);
$pass = mysql_real_escape_string($pass);
//EDIT
$sql = SELECT * FROM $tbl WHERE username='$username' and pass= SHA1('$pass');
//$result=mysql_query($sql);
$result=mysql_query($sql, $connect);
if(!$result) {
die('ERROR: ' . mysql_error());
}
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
答案 2 :(得分:0)
看起来$ sql变量实际上从未设置为任何东西,这可能导致您的问题。此外,您正在使用不推荐使用的mysql扩展并替换为mysqli扩展。与msyqli连接的一个例子(这是一个非常相似的扩展名):