我正在采取措施为我的网站设置用户注册。我有这样的表格
<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;
?>
但是当我输入不同的密码时,会回显相同的值!这是为什么?
答案 0 :(得分:4)
$ _POST数组填充了具有名称属性的表单中的所有字段,而不是 id ,并且您的密码输入没有。您可以通过回显未加密的密码来确认这一点。
要解决您的问题,只需像在其他字段中一样添加 name =“password”。
<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" name="password" value=""><br/>
<input id="registratebutton" type="submit" value="Register">
</form>
另请参阅PHP中的新password_hash函数,它比MD5更好。