以下是代码:
<?php
$curDate = date("r",strtotime("now"));
if($database->addNewSale($_SESSION['username'],$_SESSION['userid'], $_SESSION['cart'],$curDate) ==10){
//Some of the offers in the cart have expired and cannot be purchased!
header("Location: ../order/index.php");
exit;
} else if($database->addNewSale($_SESSION['username'],$_SESSION['userid'], $_SESSION['cart'],$curDate)){
echo "insert process ok";
}
else echo "sale has not been saved into the db";
?>
但是,当函数addNewSale
返回10
这是购物车中的错误代码时,重定向标题函数实际上并没有重定向到我设置的页面。
答案 0 :(得分:1)
你有
header("Location: ../order/index.php");
但是位置标题必须是完整的绝对URL。我不知道这是不是你的问题,但即使它碰巧工作也不正确。
请参阅http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html第14.30节
答案 1 :(得分:0)
你收到任何警告吗? header()失败最常见的原因是“已发送的头文件”警告,这可能是由空格(不能在php开头标记之上有任何内容)或其他任何可能发送到html页面的内容引起的。检查以确保您的文本编辑器没有使用字节顺序标记(BOM)保存它 - 这会导致与具有错误空格的完全相同的问题。您可以尝试打开输出缓冲(ob_start() - 完成后请确保ob_end_flush()。)
答案 2 :(得分:0)
首先尝试
if(result=='10')//use single quotes
otherwise
use full location path
$path="index.php";
header("Location:$path");