所有这一切都是新的,请原谅我的无知。我想弄清楚如何在我的表单中添加“确认您的密码”字段。使用PHP和mySQL。这是在html表单代码中输入的,如何将其设置为自动检查密码和确认密码字段是否匹配。
答案 0 :(得分:18)
只需获取表单提交PHP并测试相等性的密码和确认密码字段:
if ($_POST["password"] === $_POST["confirm_password"]) {
// success!
}
else {
// failed :(
}
其中password
和confirm_password
是密码的HTML文本输入的ID。
答案 1 :(得分:4)
您要做的是表单验证。在客户端进行验证(使用javascript)是一个好主意,因此您可以在界面和服务器端为用户提供更快的响应(因为您的用户可以禁用javascript - 因为您应该从不盲目用户输入中的信任。有关此主题的更多信息,请阅读Should you do validation on your server side。
您只需要比较两个发布的值。如果正确,请插入数据库。如果没有,请不要做任何事情并向用户返回一条消息,说密码不正确。
由于您未提供有关您的php环境(使用的框架,使用的库等)的足够或详细信息,因此无法提供更多详细信息。
答案 2 :(得分:2)
您可以使用
在JavaScript中查看 <html><title></title><head>
<script>
function validate(){
if(!document.getElementById("password").value==document.getElementById("confirm_password").value)alert("Passwords do no match");
return document.getElementById("password").value==document.getElementById("confirm_password").value;
return false;
}
</script>
</head>
<body>
<form onSubmit="return validate()" action="nextPage.php">
Password: <input type="text" id="password" name="password" /><br/>
Reenter Password: <input type="text" id="confirm_password" name="confirm_password" />
<input type="submit" value="submit"/>
</form>
</body>
</html>
在服务器端,如果客户端没有启用JavaScript,则需要再次检查
if($_GET['password']==$_GET['confirm_password'])
在POST方法的情况下,你必须使用$ _POST而不是$ _GET
答案 3 :(得分:2)
我更新了代码,表单提交时缺少冒号。
<html>
<title></title>
<head>
<script>
function validate(){
var a = document.getElementById("password").value;
var b = document.getElementById("confirm_password").value;
if (a!=b) {
alert("Passwords do no match");
return false;
}
}
</script>
</head>
<body>
<form onSubmit="return validate();" ">
Password: <input type="text" id="password" name="password" /><br/>
Re-enter Password: <input type="text" id="confirm_password" name="confirm_password" />
<input type="submit" value="submit"/>
</form>
</body>
</html>
答案 4 :(得分:1)
您使用的是某种框架吗?如果不是,它应该像保存后检查两个字段都设置那样简单,并且$ confirmationPassword == $ passWord。然后在将密码存储到SQL中之前,将所需的任何验证应用于密码。