Javascript 电子邮件验证并将值提交到数据库
我正在尝试验证电子邮件,它也正在得到验证,但下面的php代码正在将值插入db中,即使用户没有输入有效的电子邮件。如果有人能帮忙的话,请告诉我我是初学者。提前谢谢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\-
<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键提交表单,则可以跳过验证。