Quellcode durchsuchen

merged branch stloyd/session_fix (PR #1517)

Commits
-------

756ea8d Call session_name() only if user gave an new one. Closes #1418

Discussion
----------

[Session] Call session_name() only if user gave an new one

Call `session_name()` only if user gave an new one, by default will use an "php.ini" option. Also added some phpdoc.

Closes #1418.
Fabien Potencier vor 14 Jahren
Ursprung
Commit
88bee2bd41

+ 12 - 9
src/Symfony/Component/HttpFoundation/SessionStorage/NativeSessionStorage.php

@@ -26,8 +26,8 @@ class NativeSessionStorage implements SessionStorageInterface
     /**
      * Available options:
      *
-     *  * name:     The cookie name (_SESS by default)
-     *  * id:       The session id (null by default)
+     *  * name:     The cookie name (null [ommited] by default)
+     *  * id:       The session id (null [ommited] by default)
      *  * lifetime: Cookie lifetime
      *  * path:     Cookie path
      *  * domain:   Cookie domain
@@ -43,15 +43,18 @@ class NativeSessionStorage implements SessionStorageInterface
         $cookieDefaults = session_get_cookie_params();
 
         $this->options = array_merge(array(
-            'name'          => '_SESS',
-            'lifetime'      => $cookieDefaults['lifetime'],
-            'path'          => $cookieDefaults['path'],
-            'domain'        => $cookieDefaults['domain'],
-            'secure'        => $cookieDefaults['secure'],
-            'httponly'      => isset($cookieDefaults['httponly']) ? $cookieDefaults['httponly'] : false,
+            'name'     => null,
+            'lifetime' => $cookieDefaults['lifetime'],
+            'path'     => $cookieDefaults['path'],
+            'domain'   => $cookieDefaults['domain'],
+            'secure'   => $cookieDefaults['secure'],
+            'httponly' => isset($cookieDefaults['httponly']) ? $cookieDefaults['httponly'] : false,
         ), $options);
 
-        session_name($this->options['name']);
+        // Skip setting new session name if user don't wan't it
+        if (isset($this->options['name'])) {
+            session_name($this->options['name']);
+        }
     }
 
     /**