防止php在Javascript验证失败后执行代码,并使用JS阻止某些字符
我有一份用户登记表,在用户填写完所有信息后,我提交输入值:防止php在Javascript验证失败后执行代码,并使用JS阻止某些字符,javascript,php,jquery,Javascript,Php,Jquery,我有一份用户登记表,在用户填写完所有信息后,我提交输入值: <?php if (isset($_POST['submit'])) { echo '<script type="text/javascript">CheckPassword(document.userform.password);</script>'; ## connect mysql server $mysqli = new mysqli(D
<?php if (isset($_POST['submit'])) {
echo '<script type="text/javascript">CheckPassword(document.userform.password);</script>';
## connect mysql server
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
# check connection
if ($mysqli->connect_errno) {
echo "<p>Fehler Nummer {$mysqli->connect_errno} : {$mysqli->connect_error}</p>";
exit();
}
## query database
# prepare data for insertion
$username = $_POST['username'];
$password = $_POST['password'];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
# check if username and email exist else insert
// u = username, e = emai, ue = both username and email already exists
//the rest of the code is not important for this question
您不能这样做,您需要将js验证函数移动到表单提交上,因为php在服务器端运行,而js在客户端运行。当您的js函数执行时,您的php已经在服务器上执行了
正确的方法是在表单提交时调用函数
例如:
<form name="test_frm" id="test_frm" action="abc.php" onsubmit="return CheckPassword();">
注意:这只是一个例子你能给我们看看你的html代码吗?你的想法是错误的。在发送表单之前,使用Javascript验证帮助用户(如果表单不正确,则阻止发送)。表单发送后,在PHP中再次检查它(这一部分是最重要的)。您的验证不能由javascript(客户端)完成,请尝试在PHP中验证密码,请参阅。如果$_post['password']与您的正则表达式匹配,那么您可以继续,否则会显示错误…好的,我使用$searchfor=“/^(?=.*\d)(?=.[a-z])(?=.[a-z])。{8,20}$/”;如果(preg_match($searchfor,$password,$matches,preg_OFFSET_CAPTURE))并且密码正确,则它可以工作。但是当密码不正确时,没有其他方法了?我可以从JS函数调用php代码来注册用户吗?是的,您可以使用ajaxOk来注册用户。我使用$searchfor=“/^(?=.*\d)(?=.[a-z])(?=.[a-z])(?=.[a-z]){8,20}$/”;如果(preg_match($searchfor,$password,$matches,preg_OFFSET_CAPTURE))
并且如果密码正确,它就会工作。但是当密码不正确时,就没有别的了?
<form name="test_frm" id="test_frm" action="abc.php" onsubmit="return CheckPassword();">