希望这不会像我一直认为的那样简单。单击提交时的简单HTML论坛调用Javascript进行验证,由PHP处理以将已验证的信息放入MySql表中。我遇到的问题是,一旦我得到javascript返回true,我该如何在PHP中使用它?
论坛:
<form action="" method="post" name="register">
<div class="field">
<label for "username">Username</label>
<input type="text" name="username" id="username" value="" autocomplete="off">
</div>
<div class="field">
<label for "password">Choose a password</label>
<input type="password" name="password" id="password">
</div>
<div class="field">
<label for "password_again">Reenter Password</label>
<input type="password" name="password_again" id="password_again">
</div>
<div class="field">
<label for "name">Name</label>
<input type="text" name="name" id="name" value="" autocomplete="off">
</div>
<input type="submit" value="Register" id="submit" onclick="validate()" />
外部JS文件:
function validate() {
var password = document.register.password.value;
var passwordagain = document.register.password_again.value;
var name = document.register.username.value;
var test = new RegExp("[^a-zA-Z0-9]");
var space = String.fromCharCode(32);
if (name.match(test)) {
alert("Your name may only contain letters and numbers.");
return false;
} else if (name.match(space)) {
alert("Spaces are not allowed.");
return false;
} else if ((name.length <= 2) || (name.length >= 11)) {
alert("Name must be between 3 and 10 characters.");
return false;
} else if (!password.match(passwordagain)) {
alert("Passwords do not match");
return false;
} else if ((password.length <= 6) || (password.length >= 32)) {
alert("Password must be between 6 and 32 characters long.");
return false;
}
return true;
}
答案 0 :(得分:0)
您可以将表单的action
属性设置为指向在验证表单后重定向到的PHP页面。
或者,您可以使用XMLHttpRequest
将表单数据发送到PHP脚本。已经有人询问如何执行此操作,您可以找到here
旁注:
在服务器端进行所有表单验证通常是个好主意。这是因为有人很容易破解JavaScript。任何人都可以通过打开浏览器的控制台并执行以下操作来更改validate()
功能:
validate = function() { return true; };