2012-05-08 32 views
0

我的聯繫人表單沒有通過電子郵件發送電話號碼。我在表單和腳本中都有這個字段。PHP腳本不從表格

<form id="contact" action=""> 
    <fieldset> 
     <label for="name" id="name_label">Name <br /></label> 
     <input type="text" name="name" id="name" value="" class="text-input" /> 
     <label for="email" id="email_label">E-mail<br /></label> 
     <input type="text" name="email" id="email" value="" class="text-input" /> 
     <label for="phone" id="phone_label">Phone number<br /></label> 
     <input type="text" name="phone" id="phone" value="" class="text-input" /> 
     <label for="msg" id="msg_label">Preferred contact time</label> 
     <textarea cols="60" rows="10" name="msg" id="msg" ></textarea> <br class="clear" /> 
     <input type="submit" name="submit" class="button" id="submit_btn" value="Send Message &rarr;"/> 
    </fieldset> 
    </form> 

和下面的PHP腳本:

<?php 
    $emailTo = '[email protected]'; 
    $subject = 'Advanced Contact Form'; 
    $name=$_REQUEST['name']; 
    $email=$_REQUEST['email']; 
    $phone=$_REQUEST['phone']; 
    $msg=$_REQUEST['msg']; 

    $body = "Name: $name \n\nEmail: $email \n\nphone: $phone \n\nMessage: $msg"; 
    $headers = 'From: '.$name.' <'.$email.'>' . "\r\n" . 'Reply-To: ' . $email; 

    mail($emailTo, $subject, $body, $headers); 
    echo 'Mail sent'; 
?> 

電子郵件發送正常,但電話號碼犯規在電子郵件中顯示出來。 任何想法可能是什麼問題?

編輯:我的網址看起來像這樣:

www.website.com/contact.html?name=test&email=test%40test.com&phone=0112+2255555&msg=2312312312312&submit=Send+Message+%26%238594%3B 
+0

檢查拼寫在實際的代碼也是在第一次看cannt發現任何錯誤 – nu6A

+1

如果可能的話,不要使用'$ _REQUEST'。它不像指定'POST'或'GET'那樣安全。 – JakeParis

+0

@阿倫,那你爲什麼要麻煩回答? – JakeParis

回答

1

這裏是你應該如何處理電子郵件形式,第一過程中的值,如果任何建立在一個錯誤數組的一個基本的例子。

然後發送,NEVER信任用戶輸入尤其接觸形式。

<?php 
if($_SERVER['REQUEST_METHOD']=='POST'){ 

$emailTo = '[email protected]'; 
$subject = 'Advanced Contact Form'; 

$name=(isset($_POST['name'])?$_POST['name']:null); 
$email=(isset($_POST['email'])?$_POST['email']:null); 
$phone=(isset($_POST['phone'])?$_POST['phone']:null); 
$msg=(isset($_POST['msg'])?$_POST['msg']:null); 

$error=array(); 
$cont=true; 
//name 
if(isset($name)){ 
    if(strlen($name)<=1){ 
     $cont=false; 
     $error['error_name']='Enter your real name!'; 
    }else{ 
     $name=preg_replace('/[^a-zA-Z0-9\(\)\:\?.\&,_ -]/s', '', $name); 
    } 
}else{ 
    $error['error_name']='Enter your name!'; 
    $cont=false; 
} 

//email 
if(isset($email)){ 
    if(filter_var($email, FILTER_VALIDATE_EMAIL)){ 

    }else{ 
     $cont=false; 
     $error['error_email']='Email Invalid'; 
    } 
}else{ 
    $cont=false; 
    $error['error_email']='Please enter your email!'; 
} 

//phone 
if(isset($phone)){ 
    if(strlen($phone)<=1){ 
     $cont=false; 
     $error['error_phone']='Enter your real number!'; 
    }else{ 
     $phone=preg_replace('/[^0-9]/s', '', $phone); 
    } 
}else{ 
    $error['error_phone']='Enter your number!'; 
    $cont=false; 
} 

//message 
if(isset($msg)){ 
    if(strlen($msg)<=1){ 
     $cont=false; 
     $error['error_message']='Enter your real message!'; 
    }else{ 
     $msg=preg_replace('/[^a-zA-Z0-9\(\)\:\?.\&,_ -]/s', '', $msg); 
    } 
}else{ 
    $error['error_message']='Enter your message!'; 
    $cont=false; 
} 

if(empty($error) && $cont ==true){ 
    //send mail 
    $body = "Name: $name \n\n 
     Email: $email \n\n 
     phone: $phone \n\n 
     Message: $msg"; 

    // Additional headers 
    $headers ='MIME-Version: 1.0'."\r\n"; 
    $headers.='Content-type: text/html; charset=iso-8859-1'."\r\n"; 
    $headers.='Reply-To: '.$email."\r\n"; 
    $headers.='From: '.$name.' <'.$email.'>'."\r\n"; 
    $headers.="X-Mailer: Remote Mail\r\n"; 
    // Mail it 
    $status = (mail($emailTo, $subject, $body, $headers))?'Mail Was Sent':'Error Sending email'; 
}else{ 

    //error with form values 
    $status=''; 
    foreach($error as $type=>$reason){ 
    $status .= $reason.'<br />'; 
    } 
} 

//Echo your form or status page 
echo $status; 
}else{ 
    //Echo your form 
} 

?> 
+0

+1 ..我已經測試了這個.. :( – jerrymouse

+0

這個PHP犯規發送郵件的URL –

+0

這沒有工作,但生病無論如何接受的答案,因爲你們對我額外的在我的旅程中幫助我的東西。謝謝 –