【发布时间】:2014-01-21 21:52:14
【问题描述】:
我正在为我的网站设置用户注册。我有这样的表格
<form action="registrate-user.php" method="POST"> <br/>
Username: <input type="text" id="username" name="username" value=""> <br/>
E-mail: <input type="text" id="email" name="email" value="Secret"> <br/>
Password: <input type="password" id="password" value=""><br/>
<input id="registratebutton" type="submit" value="Register">
</form>
还有这样的接收器
<?php
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$hashedpass = hash('md5', $password);
echo $username . " " . $email . " " . $hashedpass;
?>
但是当我输入不同的密码时会回显相同的值!这是为什么呢?
【问题讨论】:
-
表单元素必须有一个
name属性才能从浏览器传递到网络服务器......所以你不会得到任何作为 $_POST['password']... 传递的东西。所以你总是散列相同的空值 -
学习时的小步骤很好,但是应该单独使用
md5。密码存储被认为是不安全的。只是一个快速的“仅供参考”;-) -
哦,好的,我明白了。将其发布为答案,我将接受它作为解决方案。 @Fred-ii- 你建议我改用哪种算法?
-
在这里阅读 >>> php.net/password 并且始终
hash不加密。
标签: php html forms hash registration