我在这里使用了一个教程: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)
?>
上面的代码应该是:
我确定我没有在某个地方使用过正确的变量,或者我的语法做了一个简单的错误;任何评论/帮助非常感谢!
谢谢, 克里斯M
答案 0 :(得分:0)
/* Database connection info*
您没有在那里正确关闭您的评论。在该行的末尾添加/
。
哦,MD5不安全。请改用SHA1。或者甚至更好,使用盐渍SHA1。
您还需要使用mysql_real_escape_string()
开始转义您放入数据库的所有用户输入,否则Little Bobby Tables将为您的数据库带来很多乐趣。
答案 1 :(得分:0)
/ *数据库连接信息* /
mysql_select_db("dbname", $con);
$encryptedpassword = md5($_POST['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)
?>
括号的关闭是查询中的问题
('$_POST[uName]','$encryptedpassword','$_POST[uSurname]','$_POST[uFirstName]'";
这需要结束' ) '
答案 2 :(得分:0)
您的代码需要一些验证&逃避,更像这样:
<?php
/* Database connection info */
mysql_select_db("dbname", $con);
if ($_REQUEST['METHOD'] == 'POST') {
$uName = filter_input(INPUT_POST, 'uName');
$uPassword = filter_input(INPUT_POST, 'uPassword');
$uSurname = filter_input(INPUT_POST, 'uSurname');
$uFirstName = filter_input(INPUT_POST, 'uFirstName');
// do some validation here ...
// if everything OK, then crypte the password
$hashedPassword = md5($uPassword);
// and store it
$sql = sprintf(
'INSERT INTO users (uName, hashedPassword, uSurname, uFirstName)
VALUES (%s, %s, %s, %s);',
mysql_real_escape_string($uName, $con),
mysql_real_escape_string($hashedPassword, $con),
mysql_real_escape_string($uSurname, $con),
mysql_real_escape_string($uFirstName, $con)
);
if (!mysql_query($sql,$con)) {
die('Error: ' . mysql_error());
}
mysql_close($con);
echo "Account created. You can now login";
}
?>
现在登录
<?php
if ($_REQUEST['METHOD'] == 'POST') {
$uName = filter_input(INPUT_POST, 'uName');
$uPassword = filter_input(INPUT_POST, 'uPassword');
$hashedPassword = md5($uPassword);
$sql = sprintf(
'SELECT * FROM users WHERE uName = "%s" AND hashedPassword = "%s" LIMIT 1',
mysql_real_escape_string($uName, $con),
mysql_real_escape_string($hashedPassword, $con),
);
// etc etc ...
}
?>