- sessions are always started (even for visitors)

- thumbnail order saved in the session instead of cookie

git-svn-id: http://piwigo.org/svn/trunk@1623 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
rvelices
2006-12-01 01:46:32 +00:00
parent 7111d867b9
commit b2de3c32ee
4 changed files with 62 additions and 24 deletions
+46 -1
View File
@@ -81,7 +81,7 @@ if (isset($conf['session_save_handler'])
// cookie_path will return : "/meeting/gallery"
function cookie_path()
{
if ( isset($_SERVER['REDIRECT_SCRIPT_NAME']) and
if ( isset($_SERVER['REDIRECT_SCRIPT_NAME']) and
!empty($_SERVER['REDIRECT_SCRIPT_NAME']) )
{
$scr = $_SERVER['REDIRECT_SCRIPT_NAME'];
@@ -221,4 +221,49 @@ DELETE
pwg_query($query);
return true;
}
/**
* persistently stores a variable for the current session
* currently we use standard php sessions but it might change
* @return boolean true on success
* @see pwg_get_session_var, pwg_unset_session_var
*/
function pwg_set_session_var($var, $value)
{
if ( !isset($_SESSION) )
return false;
$_SESSION['pwg_'.$var] = $value;
return true;
}
/**
* retrieves the value of a persistent variable for the current session
* currently we use standard php sessions but it might change
* @return mixed
* @see pwg_set_session_var, pwg_unset_session_var
*/
function pwg_get_session_var($var, $default = null)
{
if (isset( $_SESSION['pwg_'.$var] ) )
{
return $_SESSION['pwg_'.$var];
}
return $default;
}
/**
* deletes a persistent variable for the current session
* currently we use standard php sessions but it might change
* @return boolean true on success
* @see pwg_set_session_var, pwg_get_session_var
*/
function pwg_unset_session_var($var)
{
if ( !isset($_SESSION) )
return false;
unset( $_SESSION['pwg_'.$var] );
return true;
}
?>
+2 -4
View File
@@ -297,15 +297,13 @@ while (isset($tokens[$i]))
// By default, it is the same as the $user['nb_image_page']
$page['nb_image_page'] = $user['nb_image_page'];
if (isset($_COOKIE['pwg_image_order'])
and is_numeric($_COOKIE['pwg_image_order'])
and $_COOKIE['pwg_image_order'] > 0)
if (pwg_get_session_var('image_order',0) > 0)
{
$orders = get_category_preferred_image_orders();
$conf['order_by'] = str_replace(
'ORDER BY ',
'ORDER BY '.$orders[ $_COOKIE['pwg_image_order'] ][1].',',
'ORDER BY '.$orders[ pwg_get_session_var('image_order',0) ][1].',',
$conf['order_by']
);
$page['super_order_by'] = true;
+5 -9
View File
@@ -43,26 +43,22 @@ if (isset($_COOKIE[session_name()]))
setcookie($conf['remember_me_name'], '', 0, cookie_path());
redirect(make_index_url());
}
elseif (empty($_SESSION['pwg_uid']))
{ // timeout
setcookie(session_name(),'',0,
ini_get('session.cookie_path'),
ini_get('session.cookie_domain')
);
}
else
elseif (!empty($_SESSION['pwg_uid']))
{
$user['id'] = $_SESSION['pwg_uid'];
}
}
// Now check the auto-login
if ( $user['id']==$conf['guest_id'] )
{
auto_login();
}
if (session_id()=="")
{
session_start();
}
// using Apache authentication override the above user search
if ($conf['apache_authentication'] and isset($_SERVER['REMOTE_USER']))
+9 -10
View File
@@ -40,12 +40,14 @@ check_status(ACCESS_GUEST);
//---------------------------------------------- change of image display order
if (isset($_GET['image_order']))
{
setcookie(
'pwg_image_order',
$_GET['image_order'] > 0 ? $_GET['image_order'] : '',
0, cookie_path()
);
if ( (int)$_GET['image_order'] > 0)
{
pwg_set_session_var('image_order', (int)$_GET['image_order']);
}
else
{
pwg_unset_session_var('image_order');
}
redirect(
duplicate_index_url(
array(), // nothing to redefine
@@ -260,10 +262,7 @@ if (isset($page['cat_nb_images']) and $page['cat_nb_images'] > 0
// image order
$template->assign_block_vars( 'preferred_image_order', array() );
$order_idx = isset($_COOKIE['pwg_image_order'])
? $_COOKIE['pwg_image_order']
: 0
;
$order_idx = pwg_get_session_var( 'image_order', 0 );
$orders = get_category_preferred_image_orders();
for ($i = 0; $i < count($orders); $i++)