无法使用的php登录名具有密码

无法使用的php登录名具有密码,php,mysql,login,system,Php,Mysql,Login,System,嘿,我正在尝试让一个登录在密码被散列的地方工作。我有它的工作时,密码是散列,但似乎无法得到它的工作时,他们是。它给我的错误是“对不起,你的用户名或密码不正确”。有没有指向我可能出错的地方的指示?它连接到db正确,我刚从“”中提取了详细信息 下面是我的checklogin php <?php $host = ""; // Host name $username = "root"; // Mysql username $password = ""; // Mysql password $

嘿,我正在尝试让一个登录在密码被散列的地方工作。我有它的工作时,密码是散列,但似乎无法得到它的工作时,他们是。它给我的错误是“对不起,你的用户名或密码不正确”。有没有指向我可能出错的地方的指示?它连接到db正确,我刚从“”中提取了详细信息

下面是我的checklogin php

<?php
$host = ""; // Host name 
$username = "root"; // Mysql username 
$password = ""; // Mysql password 
$db_name = "login"; // Database name 
$tbl_name = "tbl_pswd"; // Table name 

mysql_connect("", "root", "") or die("cannot connect");
mysql_select_db("login") or die("cannot select DB");


$username = $_POST['username'];
$passowrd = sha1($_POST['password']);

$sql = "(SELECT username FROM tbl_pswd WHERE username = '$username' AND password = '$password')";
$result = mysql_query($sql);

if (mysql_num_rows($result) < 1) {
    echo 'Sorry, your username or password was incorrect!';
} else {
    printf('welcome back %5s!', $_POST['username']);
}
?>

您错发了
密码

$passowrd = sha1($_POST['password']);
修复它:

$password = sha1($_POST['password']);
需要注意的事项

  • 不要将同一变量重新用于数据库连接 创建单独的值
  • 保护您的代码不受
  • 将mysql升级到

    • 有一个简单的拼写错误-

      $passowrd = sha1($_POST['password']);
      

      纠正它,它就会工作

      在这一行:
      mysql\u connect(“,”root“,”)或die(“无法连接”)
      没有主机名

      mysql_connect(hostname, username, password) or die("cannot connect");
      
      通常主机名为“localhost”

      代码如下:

      mysql_connect("localhost", "root", "")or die("cannot connect");
      
      然后


      拼写错误(行):
      $passowrd=sha1($\u POST['password'])

      在这里散列您的密码并与数据库进行比较首先,请阅读准备好的语句和MySQL注入。另外,不要使用mysql_*函数,这些函数被认为是不好的做法,将在未来的PHP版本中删除。除此之外,您的代码是一种安全暴行。您正在使用数据库密码和检查用户密码。很好,目前已完成对发布的用户名和MySQL数据库密码的检查。。请更新您的答案,告知他使用定义良好且有差异的变量。+1表示正确的解决方案;可能会考虑解释他在用户输入和数据库连接中使用了相同的变量。嗯,感谢变量建议,我修复了拼写错误,但它仍然说我输入了错误的详细信息。我想底部的if语句可能有问题。你试着记录查询并直接在中运行吗DB?请调试this@user3253191如果($result){//check count}或者{//mysql\u query failed}
      mysql_connect("localhost", "root", "")or die("cannot connect");