2015-12-22 37 views
0

我想驗證電子郵件,它也得到驗證,但下面的PHP代碼插入價值數據庫,即使用戶沒有輸入有效的電子郵件。如果有人能幫助我,我是初學者。提前致謝。電子郵件驗證和提交價值數據庫

<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> 
+1

您正在使用的javascript:必須調用表單提交檢查。 PHP不涉及這一點。發佈你的「表單」代碼。 – Aerendir

+3

所以這個問題不是關於PHP和MySQL?這聽起來像是你的JavaScript的問題。順便說一下,我也推薦後端驗證。前端驗證非常適合可用性,但後端驗證對於確保數據有效性仍然很重要。 – Tristan

+0

'email.focus;',它是'focus()' – Ramanlfc

回答

0

這裏您需要更改提交代碼。

當前位置>>

<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事件的功能驗證。

+0

謝謝它的工作。 – Amarpreet