2015-11-11 25 views
0

下面的代碼是mail..but表單不能重定向..任何人都可以檢查代碼中有什麼錯誤..謝謝你.html是在同一個文件夾中。 在此先感謝重定向到thankyou頁面代碼檢查

`http://blog.teamtreehouse.com/create-ajax-contact-form //添加輸入消毒,以防止注射

// Only process POST reqeusts. 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    // Get the form fields and remove whitespace. 
    $name = strip_tags(trim($_POST["name"])); 
    $name = str_replace(array("\r","\n"),array(" "," "),$name); 
    $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL); 
    $message = trim($_POST["message"]); 
    $phone = trim($_POST["phone"]); 

    // Check that data was sent to the mailer. 
    if (empty($name) OR empty($phone) OR empty($message) OR !filter_var($email, FILTER_VALIDATE_EMAIL)) { 
     // Set a 400 (bad request) response code and exit. 
     http_response_code(400); 
     echo "Oops! There was a problem with your submission. Please complete the form and try again."; 
     exit; 
    } 

    // Set the recipient email address. 
    // FIXME: Update this to your desired email address. 
    $recipient = "[email protected]"; 

    // Set the email subject. 
    $subject = "New contact from $name"; 

    // Build the email content. 
    $email_content = "Name: $name\n"; 
    $email_content .= "Email: $email\n\n"; 
    $email_content .= "Phone:\n$phone\n"; 
    $email_content .= "Message:\n$message\n"; 

    // Build the email headers. 
    $email_headers = "From: $name <$email>"; 

    // Send the email. 
    if (mail($recipient, $subject, $email_content, $email_headers)) { 
     // Set a 200 (okay) response code. 
     header('Location:thankyou.html'); 

    }  
    else { 
     // Set a 500 (internal server error) response code. 
     http_response_code(500); 
     echo "Oops! Something went wrong and we couldn't send your message."; 
    } 

} else { 
    // Not a POST request, set a 403 (forbidden) response code. 
    http_response_code(403); 
    echo "There was a problem with your submission, please try again."; 
} 

?>」

+0

'header('Location:thankyou.html');',這必須在任何回聲或打印內容之前執行**。這必須在打印任何輸出之前調用。 – Thaillie

+0

而不是'header'將其改爲如下所示:'echo「」;' – Thamilan

回答

0

製作確定mail部分工作,所以它達到了redirect part

if (mail($recipient, $subject, $email_content, $email_headers)) { 
    // Set a 200 (okay) response code. 
    echo "It tries to redirect"; exit; //Do you see this!? 
    header('Location:thankyou.html'); 
    exit; //Add an exit to make sure your code stops here. 
} 

另外,還要確保沒有像echoprint_rvar_dump,或其他任何顯示的東西header部分之前任何東西。當你已經有輸出時它將不起作用。

如果這是通過AJAX請求調用的,那麼您需要注意,正確的HTML和您的AJAX回調函數會正確顯示此HTML。

+0

Thankyou幫幫忙! :-) – Shree