[英]Prevent php from executing code after Javascript validation fails and prevent some characters with JS
我有一个用户注册表,在用户填写完所有信息后,我提交输入的值:
<?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
在第一行( echo '<script...
),我调用以下javascript函数:
<script type="text/javascript">
function CheckPassword(inputtxt)
{
var passw = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,20}$/;
if(inputtxt.value.match(passw))
{
alert("check");
return true;
}
else{
alert("!check");
return false;
}
}
</script>
该调用工作正常,但是如果用户输入了无效密码,则我不想运行其余的php代码。
此外,我想防止用户输入特殊字符,例如:',',',',..。如何在Javascript中执行此操作?
您不能这样做,您需要将js验证功能移至表单提交上,因为php在服务器端运行,而js在客户端运行。 到您的js函数执行时,您的php已经在服务器上执行了。
正确的方法是在表单提交上调用函数。
例:
<form name="test_frm" id="test_frm" action="abc.php" onsubmit="return CheckPassword();">
注意:这只是一个例子
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.