За последние 24 часа нас посетили 22984 программиста и 1225 роботов. Сейчас ищут 866 программистов ...

Куки

Тема в разделе "Laravel", создана пользователем Dimon2x, 20 окт 2018.

  1. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    Я не понимаю, почему не читаются установленные мною куки?

    Через JS добавил куку city со значением 4019

    Теперь пытаюсь получить эту куку

    PHP:
    1. public function index(Request $request)
    2.     {
    3.      
    4.         dd($request->cookie('city'));
    Выводит null, хотя она есть



    555.jpg

    А если получать куки XSRF-TOKEN или laravel_session то они выводятся
    --- Добавлено ---
    если сделать так, то выводит

    PHP:
    1.  dd($_COOKIE['city']);
    но это наверно неправильно так делать в ларавеле
    --- Добавлено ---
    Так тоже null

    PHP:
    1. use Illuminate\Http\Response;
    2.  
    3. public function index(Request $request)
    4.     {
    5.      
    6.          $minutes = 60;
    7.         $response = new Response('Set Cookie');
    8.         $response->withCookie(cookie('name', 'MyValue', $minutes));
    9.      
    10.         dd($request->cookie('name'));
    --- Добавлено ---
    Сделал по мануалу, тоже не появляются

    PHP:
    1.  
    2. Cookie::queue(Cookie::make('name222', 'value', 11));
    3. Cookie::queue('name222', 'value', 11);
    --- Добавлено ---
    И так не появляются

    PHP:
    1. $cookie = cookie('name', 'value', 111);
    И ошибок не выводит
     
  2. villiwalla

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

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    Set это не Get. В доке ларки Cookie::get(cookie_name). Если в $_COOKIE null значит её там нету. Может ты в localStorage пишешь? Покажи JS. И нету такой функции для установки куки как cookie() есть setcookie().
     
  3. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    @villiwalla На картинке же видно, что js добавил её
    --- Добавлено ---
    @villiwalla Делаю так

    PHP:
    1. dd($_COOKIE);
    Выводит

    Код (Text):
    1. array:3 [▼
    2.   "city" => "197"
    3.   "XSRF-TOKEN" => "eyJpdiI6IkNmOWFZNTBNeVJZVDlnbzZPdktZd3c9PSIsInZhbHVlIjoiMHFwb1pFZ2lYUlNDZENzTmR3Z0VvU1VSaGVnS25vdFd2ZUdvMnJ5ZFpHeTNaN3dtcUZaNVAwcGxXVU43N3NmRyIsIm1hYyI6ImYwNjUz ▶"
    4.   "laravel_session" => "eyJpdiI6IlpQWmZQbklNRVFOYkl5ZTN1cnBsM1E9PSIsInZhbHVlIjoiUUpTa3ZzTG1Cb2w4MXE0K0ExTGxQRXJUUGNiNnNLUzRMM3lMMWZ4ZVR4cFpjeUJrOENkVUNcLzZ2cUlNbHgyN1oiLCJtYWMiOiI2NGFj ▶"
    5. ]
    --- Добавлено ---
    @villiwalla а смысл js показывать?

    Код (Javascript):
    1.  <script>
    2.        
    3.     function setCookie(name, value, days, path) {
    4.    
    5.     path = path || '/'; // заполняем путь если не заполнен
    6.     days = days || 10;  // заполняем время жизни если не получен параметр
    7.  
    8.     var last_date = new Date();
    9.     last_date.setDate(last_date.getDate() + days);
    10.     var value = escape(value) + ((days==null) ? "" : "; expires="+last_date.toUTCString());
    11.     document.cookie = name + "=" + value + "; path=" + path; // вешаем куки
    12. }
    13.  
    14.  
    15.        
    16.     function chooseCity(){
    17.      
    18.         var cit = document.querySelectorAll('.choose-city');
    19.  
    20.         cit.forEach(function(element, i){
    21.         cit[i].addEventListener('click', function(e) {
    22.             e.preventDefault();
    23.             var idCity = e.target.dataset.cityId;
    24.             var name = e.target.dataset.name;
    25.            
    26.             setCookie('city', idCity, 10, '/');
    27.              
    28.         });
    29.     });
    30.    
    31.        
    32.     }
    33. </script>
     
  4. yanuzay

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

    С нами с:
    28 мар 2018
    Сообщения:
    498
    Симпатии:
    57
    c временем жизни куки и path все норм?
     
  5. villiwalla

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

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    Для меня это на ЛокалСторэйдж похоже а не на куки

    Смысл в том от чего всё началось
     
  6. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Dimon2x нравится это.
  7. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    Я разобрался, добавил

    PHP:
    1.  protected $except = [
    2.         'city'
    3.     ];
    в App\Http\Middleware\EncryptCookies