javascript JS验证后运行PHP

mwg9r5ms  于 2022-11-20  发布在  Java
关注(0)|答案(2)|浏览(141)

我正在用JavaScript对管理员注册进行电子邮件验证,并用PHP将数据保存到数据库中。按理说,只有当电子邮件有效时,注册才会完成。但当电子邮件无效时,PHP代码仍然运行。我该如何做才能使电子邮件无效时,PHP不会运行呢?
下面是将数据保存到数据库的PHP代码:

<?php
include('connection.php');

if(isset($_POST['saveBtn']))
{
    $name    = $_POST['name'];
    $ic      = $_POST['ic'];
    $email   = $_POST['email'];
    $pass    = $_POST['pass'];
    $dob     = $_POST['dob'];
    $contact = $_POST['contact'];
    $gender  = $_POST['gender'];
    $des     = $_POST['des'];
    $address = $_POST['address'];

    // Check if data exist
    $check = "SELECT * FROM admin WHERE admEmail = '".$email."' AND admPassword = '".$pass."'";
    if(mysqli_num_rows(mysqli_query($connect,$check)) > 0)
    {
        ?>
        <script>
            alert('This email and password already registered!');
        </script>
        <?php
    }
    else
    {
        $insert = "INSERT INTO admin (admName, admIC, admEmail, admPassword, admDOB, admContact, admGender, admDesignation, admAddress, admDateJoin) VALUES ('".$name."', '".$ic."', '".$email."', '".$pass."', '".$dob."', '".$contact."', '".$gender."', '".$des."', '".$address."', NOW())";
    
        if(mysqli_query($connect, $insert))
        {
            ?>
            <script>
                alert('Insertion Successful!');

                window.close();
                window.opener.location.reload();
            </script>
            <?php
        }
        else
        {
            ?>
            <script>
                alert('Insertion Failed. Try Again!');
            </script>
            <?php
        }
    }
}
?>

下面是JS:

function validateEmail() {

            var email = document.addAdminForm.email.value;
            var validRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;

            if (email.match(validRegex))
            {
                alert("Valid email address!");
                
                return true;
            }
            else
            {
                document.getElementById("email_error").innerHTML = "Invalid email";

                document.addAdminForm.email.focus();

                return false;
            }

        }

下面是部分HTML表单:

<form class="w-100" name="addAdminForm" method="POST" onsubmit="validateEmail(this)" action="add_admin.php">
    <div class="row">
        <div class="col form-group">
            <!-- <label for="email">Email</label> -->
            <input type="text" class="form-control" name="email" placeholder="Email" required>
            <span class="error email_error" id="email_error"></span>
        </div>
    <div class="float-right">
        <input type="submit" class="btn button_primary" value="Save" name="saveBtn">
    </div>
</form>

我希望PHP在验证为true时运行

e5nqia27

e5nqia271#

添加以下内容:

onsubmit="return validateEmail(this)"
vdgimpew

vdgimpew2#

将JS代码更改为:

var validRegex = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;

相关问题