За последние 24 часа нас посетили 22027 программистов и 1113 роботов. Сейчас ищут 674 программиста ...

Не могу разобратся с сессиями в WordPress

Тема в разделе "PHP для профи", создана пользователем Bitrimmer, 4 окт 2018.

  1. Bitrimmer

    Bitrimmer Новичок

    С нами с:
    17 июн 2016
    Сообщения:
    29
    Симпатии:
    0
    Не могу разобратся как создать свою сессию или cookie и передать в нее массив или переменную
    есть форма из которой мне приходят $POSTы я их принимаю и посылаю json запрос - получаю ответ в формате массива
    Далее я этот массив декодирую json_decode и вот то что получается я записываю в переменную $red
    Потом мне нужно создать куку или сессию в которой я передам значение в другой файл (внутри wordpress)
    я создаю

    Код (Text):
    1. $red = $array;
    2. $y2k = mktime(0,0,0,1,1,2000);
    3. setcookie("TestCookie[one]",$red,$y2k);
    Создаю я куки не в function.php а в файле вне темы - далее я пытаюсь вызвать print_r ($_COOKIES); но совей куки не вижу - а ошибка типо переменная $red не задана и все
    возможно ли как то это сделать? создавать куки в файле например form.php и передавать эти куки дальше? в файл шаблона темы например.
    а точнее в файл content-form.php - в сам контент на странице
     
  2. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    setcookie() в качестве значения принимает только то, что может быть преобразовано в строку. Массив сам в строку не преобразуется - закодируйте его в тот же json.
     
  3. Bitrimmer

    Bitrimmer Новичок

    С нами с:
    17 июн 2016
    Сообщения:
    29
    Симпатии:
    0
    Спасибо - блин ломал голову 2 дня=) но проблема так и осталась=) вот пример:

    Код (Text):
    1. $value = "Робинзон Крузо";
    2. setcookie("MYCookie", $value, time()+3600);
    header("location: /test2");
    внутри wp файла test2 я пишу
    Код (Text):
    1. echo '<pre>';
    2. print_r($_COOKIE);
    3. echo '</pre>';
    4. echo $_COOKIE["MYCookie"];
    И вижу все куки кроме своей - может вордпресс не сохраняет куки сделанные вне ядра? или вне сессии? или еще какие то условия?
     
    #3 Bitrimmer, 5 окт 2018
    Последнее редактирование: 5 окт 2018
  4. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    То есть, Вы устанавливаете куки и делаете редирект? Куки отправляются в заголовках клиенту. Получить их можно только со следующим запросом. Либо глянуть в браузере в Network. Если они были отправлены.
     
  5. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    ну и 4й параметр добавьте в setcookie(). Ато у Вас куки отправляются для одной страницы, а смотрите Вы их на другой.
     
  6. Bitrimmer

    Bitrimmer Новичок

    С нами с:
    17 июн 2016
    Сообщения:
    29
    Симпатии:
    0
    в 4м параметре необходимо указать страницу на которую я передаю куку?
     
  7. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Да. Иногда указывают корень сайта, чтобы она была доступна на любой странице.