38 $this->
set(
$value, $attr );
53 public function set(
$value, $attr ) {
56 if ( isset( $attr[
'expires'] ) ) {
57 $this->isSessionKey =
false;
58 $this->expires = strtotime( $attr[
'expires'] );
61 if ( isset( $attr[
'path'] ) ) {
62 $this->path = $attr[
'path'];
67 if ( isset( $attr[
'domain'] ) ) {
68 if ( self::validateCookieDomain( $attr[
'domain'] ) ) {
69 $this->domain = $attr[
'domain'];
72 throw new InvalidArgumentException(
'$attr must contain a domain' );
96 if ( substr(
$domain, -1 ) ==
'.' ||
98 count( $dc ) == 2 && $dc[0] ===
''
104 if ( preg_match(
'/^[0-9.]+$/',
$domain ) ) {
105 if (
count( $dc ) != 4 ) {
109 if ( ip2long(
$domain ) ===
false ) {
113 if ( $originDomain ==
null || $originDomain ==
$domain ) {
121 if ( (
count( $dc ) == 2 && strlen( $dc[0] ) <= 2 )
122 || (
count( $dc ) == 3 && strlen( $dc[0] ) ==
"" && strlen( $dc[1] ) <= 2 ) ) {
125 if ( (
count( $dc ) == 2 || (
count( $dc ) == 3 && $dc[0] ==
'' ) )
126 && preg_match(
'/(com|net|org|gov|edu)\...$/',
$domain ) ) {
131 if ( $originDomain !=
null ) {
132 if ( substr(
$domain, 0, 1 ) !=
'.' &&
$domain != $originDomain ) {
136 if ( substr(
$domain, 0, 1 ) ==
'.'
177 || ( strlen(
$domain ) > strlen( $this->domain )
178 && substr( $this->domain, 0, 1 ) ==
'.'
182 -strlen( $this->domain ),
183 strlen( $this->domain ),
199 return ( $this->path && substr_compare( $this->path,
$path, 0, strlen( $this->path ) ) == 0 );
206 return $this->isSessionKey || $this->expires > time();