2015-04-22 23 views
0

我已使用this sample by CSS-Tricks創建了一個簡單的聯繫表單。它工作得很好,直到我定製了contactthanks.php頁面(成功提交表單的確認)。現在,每次用戶點擊「提交」時,他們都會重定向到錯誤頁面。表單'提交'按鈕始終以錯誤結尾

住的頁面:alookat.org/contact.html(隨意測試表格)。

以下是contactengine.php在編輯之後破壞了內容。我刪除了電話輸入並將其替換爲網站。我也重新編排了投入。

<?php 

$EmailFrom = "[email protected]"; 
$EmailTo = "[email protected]"; 
$Subject = "Thanks for contacting us"; 
$Name = Trim(stripslashes($_POST['Name'])); 
$Email = Trim(stripslashes($_POST['Email'])); 
$Website = Trim(stripslashes($_POST['Website'])); 
$Message = Trim(stripslashes($_POST['Message'])); 

// validation 
$validationOK=true; 
if (!$validationOK) { 
    print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">"; 
    exit; 
} 

// prepare email body text 
$Body = ""; 
$Body .= "Name: "; 
$Body .= $Name; 
$Body .= "\n"; 
$Body .= "Email: "; 
$Body .= $Email; 
$Body .= "\n"; 
$Body .= "Website: "; 
$Body .= $Website; 
$Body .= "\n"; 
$Body .= "Message: "; 
$Body .= $Message; 
$Body .= "\n"; 

// send email 
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>"); 

// redirect to success page 
if ($success){ 
    print "<meta http-equiv=\"refresh\" content=\"0;URL=php\contactthanks.php\">"; 
} 
else{ 
    print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">"; 
} 
?> 

感謝您的幫助。謝謝閱讀。

+0

使用「下面是它打破東西后,我編輯它contactengine.php。」如何打破事情?你確切的問題是什麼? – Shaggy

+0

您應該使用'echo'而不是'print' - 與(print)不同,它(稍微)更快,並且不會返回值。 – Chad

回答

2

使用

<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">"; 

是用戶移動到一個新的頁面的真正討厭的方式。您可以使用header()函數代替PHP。

header('Location: php/contactthanks.php'); 
exit; 

這樣你就發送一個頭文件告訴瀏覽器去另一個頁面,而不是html的整個頁面。

您可以在所有3個地方,你正在使用<meta http-equiv...>標籤

+0

這是否真的解決了這個問題?那麼'php \ contactthanks'呢?不應該是'php \/contactthanks'還是'php/contactthanks'? – Xufox

+1

好吧,我的錯誤。我將斜線改爲unix斜線,因爲它應該是。我無法知道你的目錄結構,所以我必須假設'php/contactthanks.php'是一個到'contactthanks.php'的有效相對路徑。 – RiggsFolly

+0

你還應該在'header'語句後面有'exit'或'die'語句。 – Chad