- Fixed a problem within key normalization which was wrongly removing dots (instead of commas) and also missing semicolon and equals

This commit is contained in:
Dave Mc Nicoll 2024-12-06 14:01:25 +00:00
parent d688a4c49d
commit 17a83db6c2
1 changed files with 6 additions and 4 deletions

View File

@ -32,7 +32,7 @@ class Cookie {
* @return boolean
*/
public function set(
?string $name,
?string $key,
?string $value = null,
?int $expires = null,
?string $path = null,
@ -47,9 +47,11 @@ class Cookie {
return false;
}
$key = $this->normalizeKey($key);
$expires = ! $expires ? 0 : time() + (int) $expires;
$_COOKIE[$name] = $value;
$_COOKIE[$key] = $value;
$options = [
'expires' => $this->options['expires'] ?? ( $expires ?: 0 ),
@ -64,7 +66,7 @@ class Cookie {
$value = sha1($this->secureHash . $value . $this->secureHash) . "|$value";
}
return $raw ? setrawcookie($name, $value ?: "", $options) : setcookie($name, $value ?: "", $options);
return $raw ? setrawcookie($key, $value ?: "", $options) : setcookie($key, $value ?: "", $options);
}
/**
@ -161,6 +163,6 @@ class Cookie {
protected function normalizeKey(string $key) : string
{
return str_replace(['.', ' ',], '_', $key);
return str_replace([',', ';', ' ', '='], '_', $key);
}
}