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() , после того, как я нажму ссылку «Удалить элемент», ничего не произойдет, но если я вручную перезагружу страницу, она будет работать, элемент будет удален. На localhost у меня нет этой проблемы, что это может быть? Версия php в порядке, могут ли быть некоторые параметры в файле .ini? Надеюсь, ты поможешь мне, спасибо

Почему бы вам не использовать метареалистичный тег или решение для 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>

Используйте ob_start() перед header('location: cart.php');

Решение: обновите версию PHP

У меня была такая же проблема с моим хостингом,

  • Переадресация заголовка не работает
  • Проблема с СЕССИЕЙ
  • и т.д

Я решил его решить хостинг-провайдером, обновив версию PHP

Он просто изменил версию php с php 5.4 до 5.6, и это могло бы устранить проблему

Поэтому попросите своего поставщика хостинга обновить версию PHP.

поместите 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'); } } с 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'); } } 

делай так

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

?> `

это будет работать

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