提交联系表单后重定向

时间:2014-03-12 22:40:01

标签: php html forms redirect

我的联系表单有问题,当我使用标题重定向时,会出现错误。

这是我的HTML

    <form method="post" action="action.php">
      <label for="name">Name:</label>
      <input type="text" name="name" id="name" required placeholder="Name" />
      <label for="name">Phone number:</label>
      <input type="text" name="phone" id="phone" required placeholder="Phone" />
      <label for="email">Email:</label>
      <input type="email" name="email" id="email" required placeholder="email@example.com" />
      <label for="message">Message:</label>
      <textarea name="message" id="message" required></textarea>
      <input type="submit" value="Send Message" />
    </form>

现在相应的action.php文件

<?php
  $name=$_POST['name'];
  $phone=$_POST['phone'];
  $email=$_POST['email'];
  $message=$_POST['message'];

  $to = "xx@hotmail.com";
  $subject = "subject";
  $message = " Name: " . $name . "\r\n email: " . $email . "\r\n phone: " . $phone. "\r\n message: " . $message;


  $from = "noreply@xx.com.au";
  $headers = "From:" . $from . "\r\n";
  $headers .= "Content-type: text/plain; charset=UTF-8" . "\r\n"; 

  if(@mail($to,$subject,$message,$headers))
       mail($email, "Thanks For for contacting xx - We will be in contact soon", $a_thank_you_message, "From: noreply@xx.com.au" );

   header( 'Location: http://www.xx.com.au' ) ;

?>

显示以下错误

  

警告:无法修改标头信息 - 已经发送的标头(输出开始于          /home/xx/public_html/action.php:3)在第26行的/home/xx/public_html/action.php中

非常感谢任何帮助, 干杯 彼得

1 个答案:

答案 0 :(得分:1)

在PHP中,当页面在header()调用之前输出任何内容时,标题重定向将失败(即抛出该错误消息)。在您的情况下,您可能在action.php中打开<?php标记之前有一些空格。删除开始标记之前的所有内容,并确保header()之前没有输出(没有echo或类似的内容)。

有关详细信息,请参阅this question