PHP& MySQL在访问数据库表时遇到表单错误

时间:2015-09-03 20:16:45

标签: mysql

我希望我的用户能够使用他们的帐户登录,因此我创建了一个html表单和一个将与mySQL数据库通信的php文件。 php代码应该检查用户名和密码是否正确并且是否存在于数据库中。如果是,则授予用户访问权限。我在想这样的算法:

<?php

//connection_start
$mysqli = new mysqli('mysql3.000webhost.com','a4305565_os','******','a4305565_users');

//check_connection
if($mysqli->connect_error){
    die("Connection error (check_connection): " . $mysqli->connect_errno . " : " . $mysqli->connect_error );
    exit();
}

//check_if_account_exists

$query = mysql_query("SELECT * FROM `users` where `username` = '$_POST[form_username]' AND `password` = '$_POST[form_password]'") or die(mysql_error());
$row = mysql_fetch_array($query) or die(mysql_error());

//verification
if(!empty($row['username']) AND !empty($row['password'])){
    echo "SUCCESSFULLY SIGNED IN.";
}else{
    die("Your are not registered yet.");
}

//Connection_end
$mysqli->close();

?>

但是当我在我的网络主机上测试代码时,它在第14行给我一个错误,说我

  

无法访问数据库“a4305565_users”,密码为= NO

或类似的东西。

请帮忙吗?

1 个答案:

答案 0 :(得分:0)

您的用户对 a4305565_users 架构没有任何权利。 编辑您的用户权限,以授予他使用此架构的权利。

你创建一个名为&#34; users&#34;的模式也有点奇怪。这听起来更像是一个表名。

而且,作为建议,你应该对用户密码进行哈希处理,将它们以纯文本形式存储起来是一种非常糟糕的做法。 此外,你可以为你的哈希加盐。

看看这个:https://en.wikipedia.org/wiki/Salt_(cryptography)