php标头重定向在if else语句中不起作用

时间:2014-02-16 05:35:25

标签: php wordpress

if($_POST){

    if($checkout_form == "checkout"){
        if($orderpersonname == "" || $orderpersonemail == ""){
            $checkouterror = "<p><font style=\"color: red;\">Please enter your full name and email address before checking out</font></p>";
        }elseif(!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $orderpersonemail)){
            $checkouterror = "<p><font style=\"color: red;\">Please enter a valid email address</font></p>";
        }elseif(!isset($_POST['tnc'])){
            $checkouterror = "<p><font style=\"color: red;\">Please accept the terms and conditions to complete this entry before checking out</font></p>";
        }
        else{
            header("Location: http://www.google.com.my");
            exit;


        }
    }
}

我有上面的代码,如果没有错误发生,它会将我重定向到结帐页面,在这种情况下,我使用谷歌页面作为样本。但它的作用实际上是将我带回到相同的URL,并且我的网站标题上方有一个空白区域,并且所有侧边栏和内容都变为空白。为什么会这样?如何解决这个重定向问题?

3 个答案:

答案 0 :(得分:0)

使用ob_start()解决此问题。我认为这将解决您的问题。

答案 1 :(得分:0)

我遇到的一个主要问题是标题已经发送过了。 尝试使用ob_start()

如上所述,如果你有空格,这将不会做任何事情......

答案 2 :(得分:0)

你没有合适的位置。

if ($_POST){
    if ($checkout_form == "checkout") {
        if($orderpersonname == "" || $orderpersonemail == "") {
            $checkouterror = "<p><font style=\"color: red;\">Please enter your full name and email address before checking out</font></p>";
        }elseif(!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $orderpersonemail)) {
            $checkouterror = "<p><font style=\"color: red;\">Please enter a valid email address</font></p>";
        }elseif(!isset($_POST['tnc'])) {
            $checkouterror = "<p><font style=\"color: red;\">Please accept the terms and conditions to complete this entry before checking out</font></p>";
        }
    } else {
        header("Location: http://www.google.com.my");
        exit;
    }
}