Bug #9015: Fix non-cookie based sessions.
authorMichael M Slusarz <slusarz@curecanti.org>
Tue, 29 Jun 2010 00:04:14 +0000 (18:04 -0600)
committerMichael M Slusarz <slusarz@curecanti.org>
Tue, 29 Jun 2010 00:04:14 +0000 (18:04 -0600)
As of PHP 5.3, 'session.use_only_cookies' defaults to true.
Also, somewhere the session appending code in Horde::url() got lost.
Re-add it.

framework/Core/lib/Horde.php
framework/Core/lib/Horde/Registry.php

index 77a6ea5..720241b 100644 (file)
@@ -952,7 +952,15 @@ HTML;
             }
         }
 
-        return new Horde_Url($url, $full);
+        $ob = new Horde_Url($url, $full);
+
+        if (empty($GLOBALS['conf']['session']['use_only_cookies']) &&
+            (($append_session == 1) ||
+             (($append_session == 0) && !isset($_COOKIE[session_name()])))) {
+            $ob->add(session_name(), session_id());
+        }
+
+        return $ob;
     }
 
     /**
index 7cce25e..9646ab5 100644 (file)
@@ -1545,7 +1545,9 @@ class Horde_Registry
         global $conf;
 
         ini_set('url_rewriter.tags', 0);
-        if (!empty($conf['session']['use_only_cookies'])) {
+        if (empty($conf['session']['use_only_cookies'])) {
+            ini_set('session.use_only_cookies', 0);
+        } else {
             ini_set('session.use_only_cookies', 1);
             if (!empty($conf['cookie']['domain']) &&
                 (strpos($conf['server']['name'], '.') === false)) {