У меня есть этот код
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>