在JS验证后运行PHP



我正在使用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在验证为真时运行

add this:

onsubmit="return validateEmail(this)"

修改JS代码为:

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

最新更新