Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
防止php在Javascript验证失败后执行代码,并使用JS阻止某些字符_Javascript_Php_Jquery - Fatal编程技术网

防止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();">