Извлечь повар ie значение из запроса заголовка - PullRequest
0 голосов
/ 26 февраля 2020

В PHP я получаю доступ к заголовочным файлам cookie с помощью: $cookie = $conn->httpRequest->getHeader('Cookie'). Это дает мне массив длиной 1, который содержит одну строку. Строка «описывает» куки-файлы веб-сайта $conn (пользователя). Это заголовок:

GET /sample_page.html HTTP/2.0
Host: www.example.org
Cookie: yummy_cookie=choco; tasty_cookie=strawberry

И, как и ожидалось, когда я пытаюсь получить доступ к значению $cookie[0] в моем коде, я получаю строку: "yummy_cookie=choco; tasty_cookie=strawberry".

Я хочу получить доступ легко значение первого повара ie (индексируется yummy_cookie), но формат строки усложняет задачу, потому что я не могу гарантировать, что всегда захочу получить доступ к первому повару ie. Есть ли способ сделать это проще?

Я использую Ratchet PHP Websocket, и на сервере веб-сокета я пытаюсь получить доступ к указанному c cook ie значению Speci c пользователя ($conn) ):

<?php
namespace dealspace_websocket;
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;

class Chat implements MessageComponentInterface {
    protected $clients;

    public function __construct() {
        //$this->clients = new \SplObjectStorage;
        $this->clients = [];
    }

    public function onOpen(ConnectionInterface $conn) {
        $cookiesArray = $conn->httpRequest->getHeader('Cookie');

    }
}

1 Ответ

0 голосов
/ 27 февраля 2020

Вот мой код для доступа к cook ie с индексом PHPSESSID (также можно использовать любой другой индекс ..):

$cookiesArray = explode('; ', $from->httpRequest->getHeader('Cookie')[0]);
foreach($cookiesArray as $cookie):
    if(strpos($cookie, "PHPSESSID=") == 0):
        $sessid = explode('=', $cookie)[1];
        break;
    endif;
endforeach;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...