From: Filipus K. <ch...@gm...> - 2011-11-17 22:28:21
|
Hi, there are say 3 changes in this commit: The addition of a slash, the reordering of code, and the use of REQUEST_URI rather than $tikiroot. I don't see the point of adding a slash as $tikiroot already ends with a slash. The reordering seems good, thanks. But why does this change the path to use REQUEST_URI rather than $tikiroot? This computes a bad path when Tiki is not in the document root and no script is specified (for example, when requesting "/tiki/", the path is "/" rather than "/tiki/"). Le 2010-11-12 13:42, thr...@us... a écrit : > Revision: 30672 > http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=30672&view=rev > Author: thraxisp > Date: 2010-11-12 18:42:27 +0000 (Fri, 12 Nov 2010) > > Log Message: > ----------- > fixed bug #2567: Login fails saying "please enable cookies" > > This change sets the cookie path before the session is started. In some > cases (tikiroot not at DocumentRoot, or request modified by mod_rewrite), > the default cookie path saves the PHP session cookie in the wrong path. > The cange also ensures that there is a slash (/) following the path. > > Modified Paths: > -------------- > branches/6.x/tiki-setup_base.php > > Modified: branches/6.x/tiki-setup_base.php > =================================================================== > --- branches/6.x/tiki-setup_base.php 2010-11-12 18:20:53 UTC (rev 30671) > +++ branches/6.x/tiki-setup_base.php 2010-11-12 18:42:27 UTC (rev 30672) > @@ -127,11 +127,17 @@ > $start_session = false; > } > } > - > +$cookie_path = str_replace("\\", "/", dirname($_SERVER["REQUEST_URI"])); > +if ($cookie_path != '/') { > + $cookie_path .= '/'; > +} > +if (isset($_SERVER["REQUEST_URI"])) { > + ini_set('session.cookie_path', str_replace("\\", "/", $cookie_path)); > +} > if ( $start_session ) { > // enabing silent sessions mean a session is only started when a cookie is presented > $session_params = session_get_cookie_params(); > - session_set_cookie_params($session_params['lifetime'], $tikiroot); > + session_set_cookie_params($session_params['lifetime'], $cookie_path); > unset($session_params); > > try { > @@ -308,9 +314,6 @@ > $_REQUEST['highlight'] = str_replace('<x>', '<x>', $_REQUEST['highlight']); > } > // --------------------------------------------------------------------- > -if (isset($_SERVER["REQUEST_URI"])) { > - ini_set('session.cookie_path', str_replace("\\", "/", dirname($_SERVER["REQUEST_URI"]))); > -} > if (!isset($_SERVER['QUERY_STRING'])) { > $_SERVER['QUERY_STRING'] = ''; > } > > |