Loading...
Здравствуйте, кто как использует куки в slimPHP? В сравнении с версией 2 они убрали из из коробки.. нашел эту библиотеку но так и не разобрался как ее юзать? Может кто-то подскажет?
PasichNIK (12.02.2022 в 13:04) Здравствуйте, кто как использует куки в slimPHP? В сравнении с версией 2 они убрали из из коробки.. нашел эту библиотеку но так и не разобрался как ее юзать? Может кто-то подскажет?
php
   <?php  namespace Your\App;  use Psr\Http\Message\ResponseInterface as Response; use Psr\Http\Message\ServerRequestInterface as Request;  class Cookie {     /**      * @param Response $response      * @param string $key      * @param string $value      * @return Response      */     public function deleteCookie(Response $response, $key)     {         $cookie = urlencode($key).'='.             urlencode('deleted').'; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; secure; httponly';         $response = $response->withAddedHeader('Set-Cookie', $cookie);         return $response;     }      /**      * @param Response $response      * @param string $cookieName      * @param string $cookieValue      * @return Response      */     public function addCookie(Response $response, $cookieName, $cookieValue)     {         $expirationMinutes = 10;         $expiry = new \DateTimeImmutable('now + '.$expirationMinutes.'minutes');         $cookie = urlencode($cookieName).'='.             urlencode($cookieValue).'; expires='.$expiry->format(\DateTime::COOKIE).'; Max-Age=' .             $expirationMinutes * 60 . '; path=/; secure; httponly';         $response = $response->withAddedHeader('Set-Cookie', $cookie);         return $response;     }      /**      * @param Request $request      * @param string $cookieName      * @return string      */     public function getCookieValue(Request $request, $cookieName)     {         $cookies = $request->getCookieParams();         return isset($cookies[$cookieName]) ? $cookies[$cookieName] : null;     }  }   
Anton Metronome (12.02.2022 в 14:01)
php
   <?php  namespace YourApp;  use PsrHttpMessageResponseInterface as Response; use PsrHttpMessageServerRequestInterface as Request;  class Cookie {     /**      * @param Response $response      * @param string $key      * @param string $value      * @return Response      */     public function deleteCookie(Response $response, $key)     {         $cookie = urlencode($key).'='.             urlencode('deleted').'; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; secure; httponly';         $response = $response->withAddedHeader('Set-Cookie', $cookie);         return $response;     }      /**      * @param Response $response      * @param string $cookieName      * @param string $cookieValue      * @return Response      */     public function addCookie(Response $response, $cookieName, $cookieValue)     {         $expirationMinutes = 10;         $expiry = new DateTimeImmutable('now + '.$expirationMinutes.'minutes');         $cookie = urlencode($cookieName).'='.             urlencode($cookieValue).'; expires='.$expiry->format(DateTime::COOKIE).'; Max-Age=' .             $expirationMinutes * 60 . '; path=/; secure; httponly';         $response = $response->withAddedHeader('Set-Cookie', $cookie);         return $response;     }      /**      * @param Request $request      * @param string $cookieName      * @return string      */     public function getCookieValue(Request $request, $cookieName)     {         $cookies = $request->getCookieParams();         return isset($cookies[$cookieName]) ? $cookies[$cookieName] : null;     }  }   
php
   public function getCookieValue(Request $request, $cookieName) {     $cookies = $request->getCookieParams();     return isset($cookies[$cookieName]) ? $cookies[$cookieName] : null; }   
косяк :-D
php
   $cookies = []; // если в куках пустой массив (нет установленных кук и их значений)  var_dump(isset($cookies['name'])); // false, то отработает return null   
ключа может не быть, а ты этому ключу присваиваешь null - это какое-никакое, но значение и пользун подумает, что есть такой ключ с таким значением, нужно логику возвращать - булево false, чтобы было при дебаге понятно, что нет такого ключа либо исключение выбрасывать проверкой array_key_exsists($cookieName, $cookie), то есть проверять не установлено ли значение ключа в НЕ NULL, а есть ли вообще такой ключ в массиве
________
посл. ред. 12.02.2022 в 14:25; всего 1 раз(а); by Вилы Выкидные
А че, setcookie() удалили?
Dark_AKC (12.02.2022 в 14:24)
А че, setcookie() удалили?

походу с версии так php4
Онлайн: 0
Время:
Gen. 0.0812
(c) Bym.Guru 2010-2026