2013-05-03 56 views
2

對我有這樣的代碼PHP,頭(重定向)沒有實際運作的服務器

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(),點擊「刪除項目」鏈接後,沒有任何反應,但如果我手動重新加載它的工作頁面,該項目將被刪除。 在本地主機上我沒有這個問題,它可能是什麼? PHP版本是好的,它可以在.ini文件中進行一些設置嗎? 希望你能幫助我,謝謝

+0

把'ob_start();'放在代碼的第一行.. – 6339 2013-05-03 12:01:00

回答

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>

+1

謝謝,這工作(只有HTML方法),唯一的小故障是在重定向表格調整大小時,它成爲寬度/高度的兩倍。我仍然不明白的是爲什麼header()不起作用 – Ovidiu 2013-05-03 12:20:56

0

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'); 
} 
} 
+0

對不起,ob_start()確實有效,但現在如果點擊「刪除項目」而不是一個我點擊 – Ovidiu 2013-05-03 12:06:32

0

做這樣

<?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();

?> `

0

這將工作

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

解決方案:更新版本的PHP

我有同樣的問題,我的主機,

  • 頭重定向不工作
  • 問題與會議

我把它解決了託管服務提供商通過更新PHP

的版本,他只是改變從PHP 5.4的PHP版本5.6,它可能有固定的問題

所以問問你的託管服務提供商,以更新PHP版。