我无法执行登录
I cannot get my logon to execute
我有一个登录表单,上面写着
<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);
我知道与服务器的联系是正确的,因为我已经测试了那个位是否有错误,但是无论我尝试什么,我都无法通过声明
"Could not execute query"
table 标题是 username
和 pass
,密码在服务器上加密。
我是新手,无法理解 PHP 手册中这么少的内容。
主持人是1and1
,他们使用Apache server
您没有将查询放入字符串中
您没有正确传递您的值
您还没有在 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,因为它已被弃用。
// 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);
看起来 $sql 变量实际上从未设置为任何值,这可能会导致您的问题。此外,您正在使用 mysql 扩展,该扩展已弃用并替换为 mysqli 扩展。与 msyqli 连接的示例(这是一个非常相似的扩展):
我有一个登录表单,上面写着
<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);
我知道与服务器的联系是正确的,因为我已经测试了那个位是否有错误,但是无论我尝试什么,我都无法通过声明
"Could not execute query"
table 标题是 username
和 pass
,密码在服务器上加密。
我是新手,无法理解 PHP 手册中这么少的内容。
主持人是1and1
,他们使用Apache server
您没有将查询放入字符串中
您没有正确传递您的值
您还没有在 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,因为它已被弃用。
// 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);
看起来 $sql 变量实际上从未设置为任何值,这可能会导致您的问题。此外,您正在使用 mysql 扩展,该扩展已弃用并替换为 mysqli 扩展。与 msyqli 连接的示例(这是一个非常相似的扩展):