我无法执行登录

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 标题是 usernamepass,密码在服务器上加密。

我是新手,无法理解 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 连接的示例(这是一个非常相似的扩展):

http://www.w3schools.com/php/php_mysql_connect.asp