【发布时间】:2011-01-26 10:38:52
【问题描述】:
我在这里使用了一个教程:http://www.phpeasystep.com/phptu/26.html 为我的网站创建登录表单。我已将数据库中的 uPassword 字段设置为 md5,并且数据库中的所有密码都使用 md5 加密。
登录效果很好,但是我对创建注册表有点困惑。
表单要求用户输入他们想要的密码。对于如何获取用户输入的密码,将其转换为 md5,然后将 md5 密码输入到用户表的 uPassword 字段中,我有点困惑。
下面是我的 processresgistration.php 文件的代码:
/* Database connection info*/
mysql_select_db("dbname", $con);
$encryptedpassword = md5($_POST['uPassword']);
md5($uPassword);
$sql="INSERT INTO users (uName, uPassword, uSurname, uFirstName)
VALUES
('$_POST[uName]','$encryptedpassword','$_POST[uSurname]','$_POST[uFirstName]'";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "Account created. You can now login";
mysql_close($con)
?>
上面的代码应该是:
- 创建一个名为 encryptedpassword 的变量
- 使用 uPassword 作为加密密码
- 将加密密码转换为 MD5
- 在用户表中输入MD5密码作为uPassword
我确定我没有在某处使用正确的变量,或者我的语法出现了一个简单的错误;非常感谢任何 cmets/帮助!
谢谢, 克里斯·M
【问题讨论】:
-
您收到任何输出吗?第一行有错误,在第一行后面加个/...
-
防止 SQL 注入 stackoverflow.com/questions/60174/…
-
哇,两个弱点(md5 和无盐密码哈希!)和三个远程可利用SQL Injection中的错误大约九行代码。那一定是某种记录。我希望。 :)
-
错误在查询右括号中缺少检查我的答案
-
我强烈建议您不要编写您的登录系统。这可能会非常不安全(我发现了 md5、CSRF、SQL 注入(使用 PDO 来防止这种情况),仅举几例)。你应该使用 openid、facebook connect 或类似的东西。我真的很喜欢 lightopenid 库的简单性 => gitorious.org/lightopenid
标签: php md5 user-registration