防止 php 在 Javascript 验证失败后执行代码,并防止某些字符使用 JS

Prevent php from executing code after Javascript validation fails and prevent some characters with JS

本文关键字:字符 JS Javascript php 验证 失败 代码 执行 防止      更新时间:2023-09-26

我有一个用户注册表,在用户填写完所有信息后,我提交输入的值:

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

注意:这只是一个例子