Перенаправление заголовка php не работает - PullRequest
0 голосов
/ 08 июня 2011

Вот код:

    <?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, который является кодом ошибки в корзине, функция заголовка перенаправления фактически не перенаправляет на страницу Iустановлен.

Ответы [ 3 ]

1 голос
/ 08 июня 2011

У вас есть

header("Location: ../order/index.php"); 

Но заголовок местоположения должен быть полным абсолютным URL. Я не знаю, если это ваша проблема, но даже если это работает, это не правильно.

См. http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html раздел 14.30

0 голосов
/ 08 июня 2011

Первая попытка с

   if(result=='10')//use single quotes
    otherwise
      use full location path
    $path="index.php";
    header("Location:$path");
0 голосов
/ 08 июня 2011

Вы получаете какие-либо предупреждения? Сбои header () чаще всего вызваны предупреждением «заголовки уже отправлены», которое может быть вызвано пробелами (они не должны быть выше открывающего тега php) или чем-то еще, что будет отправлено на html-страницу. Убедитесь, что ваш текстовый редактор не сохраняет его с метками порядка байтов (BOM) - это вызывает ту же проблему, что и наличие ошибочного пробела. Вы можете попробовать включить буферизацию вывода (ob_start () - просто убедитесь, что ob_end_flush (), когда вы закончите.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...