PHP,标题(重定向)无法在实时服务器上运行

时间:2013-05-03 11:54:59

标签: php redirect header localhost

我有这段代码

if(isset($_GET['elimina_id'])){
    if (in_array($_GET['elimina_id'], $_SESSION['cart']) ) {
        $index = (array_keys($_SESSION['cart'], $_GET['elimina_id']));
        $i = $index[0];
        unset($_SESSION['cart'][$i]);
        header('location: cart.php');
    }
 }

基本上,我想删除购物车中的商品。问题是,在测试页面上,localhost,一切正常,但在实时服务器上,我遇到了header()的问题。如果我放header()该项目将不会被删除,则该页面仅在不执行任何操作的情况下重新加载。如果我没有放header(),在我单击“删除项目”链接后,没有任何反应,但如果我手动重新加载它工作的页面,该项目将删除。 在localhost上我没有这个问题,它可能是什么? php版本没关系,可能是.ini文件中的一些设置吗? 希望你能帮助我,谢谢

6 个答案:

答案 0 :(得分:3)

header('location: cart.php');

之前使用ob_start()

答案 1 :(得分:1)

ob_start()放在代码的第一行,

ob_start();
if(isset($_GET['elimina_id'])){
if (in_array($_GET['elimina_id'], $_SESSION['cart']) ) {
    $index = (array_keys($_SESSION['cart'], $_GET['elimina_id']));
    $i = $index[0];
    unset($_SESSION['cart'][$i]);
            header('location: cart.php');
}
}

答案 2 :(得分:1)

喜欢这个

<?php

ob_start();

if(isset($_GET['elimina_id'])){

if (in_array($_GET['elimina_id'], $_SESSION['cart']) ) {

$index = (array_keys($_SESSION['cart'], $_GET['elimina_id']));

$i = $index[0];

unset($_SESSION['cart'][$i]);

header('location: cart.php');

}

}

ob_end_flush();

?> `

答案 3 :(得分:1)

  

解决方案:更新PHP版本

我的托管问题也有同样的问题,

  • 标头重定向无法正常工作
  • SESSION问题

我通过更新PHP版本来解决托管服务提供商的问题

他刚刚将php版本从php 5.4更改为5.6,它可能已经修复了问题

请求您的托管服务提供商更新PHP版本。

答案 4 :(得分:0)

为什么不使用元重定向标记或javascript解决方案?

<强> HTML: <meta http-equiv="refresh" content="0;url=http://www.site.com/cart.php">

JavaScript#1: <script>window.location = "http://www.site.com/cart.php";</script>

JavaScript#2: <script>window.navigate("http://www.site.com/cart.php");</script>

答案 5 :(得分:0)

这将起作用

<script type="text/javascript">
<!--
   window.location="http://www.newlocation.com";
//-->
</script>