Как правильно использовать цикл foreach с $ _COOKIE с PHP? - PullRequest
0 голосов
/ 29 мая 2019

Если есть 2 ошибки:

Недопустимый аргумент для foreach () ...

Использование неопределенной константы c - предполагается, что 'c' в ...

Сначала я пытаюсь выяснить, существует ли файл cookie.Затем, если в массиве существует дублированный файл cookie.

Я просматривал другие примеры здесь, но, похоже, они показывают те же циклы foreach.Что-то мне не хватает?

$seo = "perma-link"
$count = 0;
$duplicate = 0;
if (isset($_COOKIE['c'])) {
    foreach($_COOKIE['c'] as $key => $value) {
        if($value === $seo){
            $duplicate = 1;
        }
    }
} else {
    setcookie(c[$count], $seo, time()+3600);
    $duplicate = 1;
}
if($duplicate == 0){
    $count = count($_COOKIE['c']);
    setcookie(c[$count], $seo, time()+3600);
}

Ответы [ 2 ]

1 голос
/ 29 мая 2019

Указан неверный аргумент для foreach ()

Ваш $ _COOKIE ['c'] не является массивом.

Использование неопределенной константы c

setcookie(c[$count], $seo, time()+3600);

Что такое "с"? Переводчик говорит об этой ошибке. Первый аргумент setcookie () - это имя файла cookie. Вы должны предоставить правильную строку. Второй аргумент setcookie () - это значение. Если вы хотите повторить это, используя foreach, это должен быть массив. Проверьте переменную $ seo.

0 голосов
/ 30 мая 2019

Я сделал слишком много циклов foreach, и «c [$ count]» должен иметь кавычки для работы.Починил это.Я ценю отзывы Джеймса Бонда.

    $seo = "perma-link"
    $count = 0;
    $duplicate = 0;
    if (isset($_COOKIE['c'])) {
        foreach($_COOKIE as $k => $v) {
                if($k == "c" && $v == $seo){
                    $duplicate = 1;
                }
         }
    }else{
        setcookie("c[$count]", $seo, time()+3600);
        $duplicate = 1;
    }
    if($duplicate ==0){
        $count = count($_COOKIE['c']);
        setcookie("c[$count]", $seo, time()+3600);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...