Selaa lähdekoodia

Merge pull request #1060 from akotulu/master

Fixed cookie parsing, parse_str replaces urlencoded characters.
walkor 1 vuosi sitten
vanhempi
commit
620346c9b2
1 muutettua tiedostoa jossa 11 lisäystä ja 2 poistoa
  1. 11 2
      src/Protocols/Http/Request.php

+ 11 - 2
src/Protocols/Http/Request.php

@@ -222,8 +222,17 @@ class Request implements Stringable
     public function cookie(string $name = null, mixed $default = null): mixed
     {
         if (!isset($this->data['cookie'])) {
-            $this->data['cookie'] = [];
-            parse_str(preg_replace('/; ?/', '&', $this->header('cookie', '')), $this->data['cookie']);
+            $cookies = explode(';', $this->header('cookie', ''));
+            $mapped = array();
+
+            foreach ($cookies as $cookie) {
+                $cookie = explode('=', $cookie);
+                if (count($cookie) !== 2) {
+                    continue;
+                }
+                $mapped[trim($cookie[0])] = $cookie[1];
+            }
+            $this->data['cookie'] = $mapped;
         }
         if ($name === null) {
             return $this->data['cookie'];