2017-09-08 99 views
-2

晚上好。感謝您花時間幫助我。我希望大家都很好。PHP IF聲明錯誤

請參閱下面的代碼。我試圖在點擊提交按鈕後將聯繫表單發送到我的電子郵件。目前,當用戶加載網頁時會發送一封電子郵件...導致一個空郵件的大量收件箱(因爲沒有人填寫表單,網站仍在發送)這是一個問題。請有人看看我的代碼,看看我出錯了。

我想要If語句。基本上,如果點擊提交按鈕,然後發送電子郵件,否則什麼都不做。請在我身上輕鬆一下,我是一個完整的PHP NEWB!

非常感謝!

PHP:

<?php 

if (isset($_POST['submit'])) 
{ 

$to = "co.uk'; 
$subject = 'New message'; 

$text = str_replace("\n.", "\n..", $text); 

$name = $_POST['name']; 
$number = $_POST['number']; 
$email = $_POST['email']; 
$yourmessage = $_POST['yourmessage']; 

$body = <<<EMAIL 

Hello. 

Name: {$name}. 
Telephone: {$number}. 
Email: {$email} 

Message: {$yourmessage} 



This message was sent directly from the website's contact form. 

EMAIL; 


$headers = 'From: {$name}'; 

mail($to,$subject,$body,$headers); 
header('Location: ../../../../index.html'); 

} 
?> 
+0

很抱歉,但做什麼你的意思是報價不匹配?感謝您的回覆。 –

+2

我可以告訴你有一個語法錯誤。在這個'$ to =「co.uk';' –

+0

此外,'From:'需要一個電子郵件地址,而不是一個名字,我們不知道這個表單是否具有所有正確的語法。 –

回答

1

我會改變IF語句

if (
    isset($_POST['name']) && isset($_POST['number']) && isset($_POST['email']) && isset($_POST['yourmessage'])) 
{ …… } 

BTW:每個人都很好在這裏,謝謝... :-)

+1

這和修正你的「/」不匹配在'$ to =「co.uk」;' –

+0

*「順便說一句:大家都在這附近,謝謝你」*我認爲你的意思是那裏的意見,這是一個糟糕的貼子編輯:@GeorgeEdwardShawIV他們:*「現在,當網頁被用戶加載時發送一封電子郵件......導致一個巨大的」*表示這是一個糟糕的粘貼到它們的'$ to =「co.uk';' –

+0

就我個人而言,我會使用'empty()',因爲我們不知道這個(還),如果OP已經在未知)表格的輸入。無論哪種方式,'empty()'在任何情況下都是最好的。 –