2012-01-28 53 views
0

我的網站有一個簡單的PHP支持的聯繫表單,當用戶點擊發送時,返回頁面結果。我想修改它以將它們轉發到一個擁有感謝頁面的URL。任何人都可以指出我的基本代碼行嗎?我send.php的內容在這裏:可以將一個聯繫表單完成者轉發到另一個URL嗎?

define("WEBMASTER_EMAIL", '[email protected]'); 
error_reporting (E_ALL^E_NOTICE); 

function ValidateEmail($email) { 
    $regex = '/([a-z0-9_.-]+)'. # name 
    '@'. # at 
    '([a-z0-9.-]+){2,255}'. # domain & possibly subdomains 
    '.'. # period 
    '([a-z]+){2,10}/i'; # domain extension 

    if($email == '') { 
     return false; 
    } else { 
     $eregi = preg_replace($regex, '', $email); 
    } 
    return empty($eregi) ? true : false; 
} 

$post = (!empty($_POST)) ? true : false; 

if($post) { 
    $name = stripslashes($_POST['name']); 
    $email = trim($_POST['email']); 
    $subject = trim($_POST['subject']); 
    $message = stripslashes($_POST['message']); 

    $error = ''; 

    // Check name 
    if(!$name) { 
     $error .= 'Name required! '; 
    } 

    // Check email 
    if(!$email) { 
     $error .= 'E-mail required! '; 
    } 

    if($email && !ValidateEmail($email)) { 
     $error .= 'E-mail address is not valid! '; 
    } 

    // Check message 
    if(!$message) { 
     $error .= "Please enter your message!"; 
    } 

    if(!$error) { 
     $mail = mail(WEBMASTER_EMAIL, $subject, $message, 
      "From: ".$name." <".$email.">\r\n" 
      ."Reply-To: ".$email."\r\n" 
      ."X-Mailer: PHP/" . phpversion()); 

     if($mail) { 
      echo 'OK'; 
     } 
    } else { 
     echo '<div class="errormsg">'.$error.'</div>'; 
    } 
} 
+0

更換回聲「OK」;與標題('位置:...')或元刷新? – Jared 2012-01-28 14:04:12

回答

1

你可以發送這個頭:

<?php 
header('Location: http://www.example.com/'); 
?> 

確認,該頭中發送,其他任何輸出之前。將行echo 'OK';替換爲header('Location: http://www.example.com/');

+0

當你說'確保,頭部被髮送,在任何其他輸出之前',你的意思是將帶有頭部呼叫的線移動到發送消息的那一行之前的一個點? – Phil 2012-01-29 16:37:15

+0

是的,你必須首先返回標題。 '<?php echo'Hello';標題('Location:http://www.example.com/'); ?>會產生錯誤,反之亦然。 – Robin 2012-01-29 17:15:50

+0

所以它應該是:「如果($錯誤!) \t \t { \t \t \t $電子郵件=電子郵件(WEBMASTER_EMAIL,$主題,$消息, \t \t \t \t 「來源:」。$名稱」 <".$email."> \ r \ n」個 \t \t \t \t。 「回覆:」 $電子郵件。 「\ r \ n」 個 \t \t \t \t。 「X - 梅勒:PHP /」 phpversion()); \t \t \t \t \t \t如果($郵件) \t \t \t \t //回聲 'OK'; \t \t \t \t header('Location:http://www.blendmarketing.co.uk/contact_thankyou.html'); \t \t} ' – Phil 2012-01-29 19:13:06

0

請注意,您應該任何其它輸出之前做到這一點,或與輸出緩衝:

if($success) 
{ 
    header('location: /thankyou.html'); 
    die; 
} 
相關問題