Javascript 电子邮件验证并将值提交到数据库

Javascript 电子邮件验证并将值提交到数据库,javascript,Javascript,我正在尝试验证电子邮件,它也正在得到验证,但下面的php代码正在将值插入db中,即使用户没有输入有效的电子邮件。如果有人能帮忙的话,请告诉我我是初学者。提前谢谢 <script language="javascript"> function checkEmail() { var email = document.getElementById('txtEmail'); var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-

我正在尝试验证电子邮件,它也正在得到验证,但下面的php代码正在将值插入db中,即使用户没有输入有效的电子邮件。如果有人能帮忙的话,请告诉我我是初学者。提前谢谢

<script language="javascript">

function checkEmail() {
    var email = document.getElementById('txtEmail');
    var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!filter.test(email.value)) {
        alert('Please provide a valid email address');
        email.focus;
        return false;
    }
}
</script>


<?php 
error_reporting(E_ALL);
ini_set("display_errors", "On");
$con=mysqli_connect("localhost","root","","xyz");
if (mysqli_connect_errno())
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// print_r($_POST); 
if(isset($_POST['submit'])){  
    $user=$_POST['user'];
    echo $user;
    $query = "INSERT INTO Newsletter VALUES('$user')"; 
    if(mysqli_query($con, $query)){ 
         echo "inserted";
    } else { 
         echo "fail";
    }
}
?>

<form action="" method="post">
<div>
<input name="user" id="txtEmail" type="text" class="input-field" 
placeholder="Send us an email of your requirements and we will                  get          back    to you!!"></div>
<div>
<input name="submit" type="submit" class="input-button" value="subscribe" onclick='Javascript:checkEmail();'>
</div>
</form>

函数checkEmail(){
var email=document.getElementById('txtEmail');
变量过滤器=/^([a-zA-Z0-9\.\-])+\@([a-zA-Z0-9\-])+\)+([a-zA-Z0-9]{2,4})+$/;
如果(!filter.test(email.value)){
警报(“请提供有效的电子邮件地址”);
email.focus;
返回false;
}
}

在这里,您需要更改提交代码

当前>>

<input name="submit" type="submit" class="input-button" value="subscribe" onclick='Javascript:checkEmail();'>

将其更改为>>

<input name="submit" type="submit" class="input-button" value="subscribe" onclick='return checkEmail();'>


但理想情况下,您应该将函数验证保留在表单onsubmit事件中,而不是提交按钮的onclick事件中。

这里您需要更改提交代码

当前>>

<input name="submit" type="submit" class="input-button" value="subscribe" onclick='Javascript:checkEmail();'>

将其更改为>>

<input name="submit" type="submit" class="input-button" value="subscribe" onclick='return checkEmail();'>


但理想情况下,您应该将函数验证保留在表单onsubmit事件中,而不是提交按钮的onclick事件中。

您使用的是javascript:必须调用表单提交的检查。PHP与此无关。发布你的
表单
代码。那么这个问题不是关于php和mysql的?听起来问题出在javascript上。顺便说一下,我也建议进行后端验证。前端验证对可用性非常重要,但后端验证对于确保数据有效性仍然很重要。
email.focus,它是
focus()
我还更新了表单代码,请检查。谢谢,请注意最好使用表单的
onsubmit
事件。否则,如果用户只需按enter键提交表单,则可以跳过验证。您使用的是javascript:必须调用表单提交检查。PHP与此无关。发布你的
表单
代码。那么这个问题不是关于php和mysql的?听起来问题出在javascript上。顺便说一下,我也建议进行后端验证。前端验证对可用性非常重要,但后端验证对于确保数据有效性仍然很重要。
email.focus,它是
focus()
我还更新了表单代码,请检查。谢谢,请注意最好使用表单的
onsubmit
事件。否则,如果用户只需按enter键提交表单,则可以跳过验证。