Неопределенный индекс при удалении $_SESSION
У меня есть этот код, чтобы удалить любую идею из корзины... Мне нужно удалить два $_SESSION
, 1) $ _SESSION ["cart_array"]
2 $ _SESSION ["миникарта"]
Без меня добавление $_SESSION["minicart"]
это действительно удаляет $_SESSION["cart_array"]
но когда я добавил это, я получил minicart
часть я получил undefined index: minicart
, Так что я
пытался
if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) &&!isset($_SESSION["minicart"]) || count($_SESSION["minicart"]) < 1) {
код выше проверяет // Если переменная сеанса корзины не установлена или массив корзины пуст *
в оригинал if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1) {
Так
<?php
// if user wants to remove an item from cart
if (isset($_POST['index_to_remove']) && $_POST['index_to_remove'] != "") {
// Access the array and run code to remove that array index
$key_to_remove = $_POST['index_to_remove'];
if (count($_SESSION["cart_array"]["minicart"]) <= 1) {
unset($_SESSION["cart_array"]["minicart"]);
} else {
unset($_SESSION["cart_array"]["minicart"] ["$key_to_remove"]);
sort($_SESSION["cart_array"]["minicart"]);
}
}
?>
Мой вопрос, глядя на то, что я делаю, я делаю неправильно в if
заявление, а также что я делаю не так в statement
удалить ($_SESSION["cart_array"]) AND ($_SESSION["minicart"])
Если это все еще неясно, пожалуйста, оставьте комментарий, и я сделаю все возможное, чтобы объяснить это снова.
2 ответа
Попробуйте изменить
if (isset($_POST['index_to_remove']) && $_POST['index_to_remove'] != "") {
в
if (isset($_POST['index_to_remove']) && ($_POST['index_to_remove'])) {
или же !empty
вместо isset
if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"])
&& !isset($_SESSION["minicart"]) || count($_SESSION["minicart"]) < 1) {
У вас есть проблема булевой логики здесь. Это не предотвращает доступ к $_SESSION['minicart'] или $_SESSION['cart_array'], если он не установлен. То, что доступ, когда он не установлен, дает вам вашу ошибку. Проверьте свои отрицания (!) И действительно ли вы хотите || там.
Я не понимаю, что нужно проверять перед сбросом значений $ _SESSION, мне не хватает информации и контекста. Поэтому я не могу дать вам код для вставки в ваш код. Все, что я могу сделать, это сказать вам, почему вы получаете неопределенные ошибки индекса. Ваш оператор if, который должен удерживать доступ к $_SESSION['cart_array'] и $_SESSION['minicart'], если они не заданы, не выполняет то, что вы хотели. Проследи это и проверь свою логику. Если вы не можете заставить его работать, то упростите его, разбив его на несколько вложенных операторов if.
Если вы хотите скопировать и вставить код, вам нужно будет уточнить, что вы делаете немного больше. Что вы проверяете с помощью частей count(), при каких обстоятельствах вы хотите сбросить переменные и какие переменные вы хотите сбросить.