重定向到另一个页面php if和else语句

时间:2017-08-07 12:14:08

标签: php html

嘿我想在if和else语句中重定向到同一页面。我该怎么办?

我尝试了以下代码,但没有工作:

if($ac == 'yes'){
    $message="Demo sold their product";
    header( "Location: delete/delete.product.php?product=<?php echo $encodeCodeProduct; ?>" ); die;
} else{
    $message="Demo did not sell their product";
    header( "Location: delete/delete.product.php?product=<?php echo $encodeCodeProduct; ?>" ); die;
}

2 个答案:

答案 0 :(得分:2)

说明:您无法在PHP标记内附加PHP。因此,您需要解决错误,如下所示。您必须将PHP与Header Location Redirect连接起来。

if($ac == "yes"){
    $message="Demo sold their product";
    header( "Location: delete/delete.product.php?product=".$encodeCodeProduct); die;
} else{
    $message="Demo did not sell their product";
    header( "Location: delete/delete.product.php?product=".$encodeCodeProduct); die;
}

可能会出现错误:如果您遇到已发送标头错误,则必须在标头重定向之前使用ob_start()清除已经发送的输出。

使用ob_start重定向代码

if($ac == "yes"){
    $message="Demo sold their product";
    ob_start();
    header( "Location: delete/delete.product.php?product=".$encodeCodeProduct); die;
} else{
    $message="Demo did not sell their product";
    ob_start();
    header( "Location: delete/delete.product.php?product=".$encodeCodeProduct); die;
}

来自SO的更多其他参考:How to fix "Headers already sent" error in PHP

答案 1 :(得分:1)

您已经在PHP标记内,因此在您的位置字符串中,当您想要编写x时,无法重新打开PHP标记。只需撰写$encodeCodeProduct"...product=$encodeCodeProduct"

即可