sha(\'$ password\')返回空集。
我有两个问题。
问题一:
我正在尝试创建一个注册表单,用户可以在其中注册我的网站。
当我运行此mysql语句时,发现重复条目出现错误:
$sql \"insert into users(username, password) values(\'$username, sha(\'$password\'))\";
密钥\'password \'的重复条目\'da39a3ee5e6b4b0d3255bfef95601890afd80709 \'
尽管我多次更改了字符串sha(\'$ password \')。
请帮忙。
else{
include(\"databaseconnection.php\");
$databaseconnect = connect($host,$user,$password,$database)
or die(\"couldnot connect to database serever.\\n\");
$database_select = mysql_select_db($database,$databaseconnect)
or die(\"could not select dabases.\\n \" .mysql_error());
$query2 = \"insert into company(username,password)
values(\'$username\',sha1(\'$password\'))\";
$result2 = mysql_query($query2,$databaseconnect);
echo \"you have been registered as \'$companyloginName\' <br/>\";
header(\"Location:/index.php\");
我的登录PHP脚本如下:
$result =\"select username, password form users where username =\'$username\' and password = sha(\'$password\');
if(mysql_num_rows($reuslt)==1){
echo\"welcome \'$username\";
}
没有找到相关结果
已邀请:
3 个回复
涸坍饺
在此,“ 5”是用于连接数据库的密码。包含databaseconnection.php可能会覆盖ѭ5变量中的内容。 尝试按“ 7”键,您可能会自己看到它,SQL查询根本不包含任何密码,或者其中的密码与用户输入的密码不同。
遣莫捅炭
或PHP的
单独用于密码哈希。如果您的数据库受到威胁,这会对您的用户造成巨大的安全风险。 请花点时间阅读我之前关于密码哈希的答案,以正确保护您的数据。 其次,您的代码容易受到SQL Injection攻击。使用ѭ10可以转义要预先放入查询中的变量。
第三,
变量将被
文件覆盖。
重点...
因此,稍后在查询中使用的“ 5”仍然包含数据库连接的密码,而不是用户的密码。 在
中更改变量的名称,或者甚至更好,使用数组保存所有配置。
然后,如下更改您的代码:
由于调用
时已经传递了数据库,因此无需调用
。
体悉
我尚未测试这是否是原因,但您可能应该摆脱它,然后再次测试。 另外,请认真考虑使用pdo / prepare语句来防止sql注入,如果要从用户输入中插入密码,则更应如此。