2016-09-26 136 views
-1

我在簡單的HTML/PHP/CSS網站上有一個聯繫表單,我想允許人們發送他們的聯繫信息,即使他們沒有提交他們的電子郵件。聯繫表單 - 輸入的電子郵件地址無效! - 允許它通過

但一切我想,當我通過聯繫表單提交的消息,它要麼返回一些錯誤,或者返回以下錯誤:「無效的電子郵件地址進入」

這裏是我的contactprocess.php

<?php 

include("../config.php"); 

if(!$_POST) exit; 

$email = $_POST['Email_Address']; 
$error =""; 
$errors =""; 

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
    $error.="Invalid email address entered!"; 
    $errors=1; 
} 

if($errors==1) echo $error; 
else{ 
    $values = array ('Link','Quantity','Your_Message'); 
    $required = array('Link','Quantity','Your_Message'); 


    $email_subject = "The Message"; 
    $email_content = "new message:\n"; 

    foreach($values as $key => $value){ 
     if(in_array($value,$required)){ 
     if ($key != 'subject' && $key != 'company') { 
      if(empty($_POST[$value])) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit; } 
     } 
     $email_content .= $value.': '.$_POST[$value]."\n"; 
     } 
    } 

    if(@mail($your_email,$email_subject,$email_content)) { 
     header('Location: http://example.com'); 
    } else { 
     echo 'ERROR!'; 
    } 
} 
?> 

我敢肯定,這是一個簡單的編輯,但我不能弄清楚。

+0

只是匹配電子郵件字段與一些正則表達式來驗證電子郵件。 –

+0

Noob問題 - 我該怎麼做? :) – Overloard

回答

1

您的代碼明確禁止在通過&時添加錯誤,如果電子郵件無效?

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
    $error.="Invalid email address entered!"; 
    $errors=1; 
} 

然後

if($errors==1) echo $error; 
else{ // other stuff 

如果你不希望這樣的行爲,也不會簡單的選擇是隻刪除代碼?

或者是這樣的想法,如果他們提交了一封電子郵件,它必須是有效的 - 否則允許通過,如果沒有。在這種情況下,您的if應該是類似

if (!empty($email) && !filter_var($email, FILTER_VALIDATE_EMAIL)) { 
+0

耶穌基督。是的,刪除那一點代碼做到了。我發誓一切我的愛,我打的代碼,我敢肯定,我甚至試着刪除它,我仍然有錯誤。無論如何,這是做到了。感謝卡爾:) – Overloard

+1

沒有概率的:)很高興聽到我的幫助。 – Carl

相關問題