|
 | |  | | manujay Administrateur

Inscrit le: 06 Juil 2007 Messages: 420
| |  | |  |
| Posté le: Mer Juin 20, 2007 4:17 pm Sujet du message: Enlever les sid d'un forum phpBB utilisant le mod rewrite | |
| Bonjour,
Si vous avez rewrité de façon avancé votre forum à l'aide du topic précédent, il se peut que vous conserviez les sid dans l'url de vos sujets, ce qui peut etre assez pénalisant pour le référencement.
Voici un mod que nous avons trouvé pouvant vous aider à résoudre efficacement le problème:
| Code: |
#-----[ OPEN ]---------------------------------------------
#
includes/sessions.php
#
#-----[ FIND ]---------------------------------------------
# around line 157
$sql = "UPDATE " . SESSIONS_TABLE . "
SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login, session_admin = $admin
WHERE session_id = '" . $session_id . "'
AND session_ip = '$user_ip'";
#
#-----[ REPLACE WITH ]---------------------------------------
#
$sql_ip = $user_id == ANONYMOUS ? " AND session_ip = '$user_ip'" : '';
$sql = "UPDATE " . SESSIONS_TABLE . "
SET session_ip = '$user_ip', session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login, session_admin = $admin
WHERE session_id = '" . $session_id . "' $sql_ip
AND session_user_id = '$user_id'";
#
#-----[ FIND ]---------------------------------------------
# around line 210
$SID = 'sid=' . $session_id;
#
#-----[ REPLACE WITH ]---------------------------------------
#
$SID = $user_id > 0 ? 'sid=' . $session_id : '';
#
#-----[ FIND ]---------------------------------------------
# around line 288
$SID = ($sessionmethod == SESSION_METHOD_GET || defined('IN_ADMIN')) ? 'sid=' . $session_id : '';
#
#-----[ REPLACE WITH ]---------------------------------------
#
$SID = $userdata['user_id'] > 0 ? (($sessionmethod == SESSION_METHOD_GET || defined('IN_ADMIN')) ? 'sid=' . $session_id : '') : '';
#
#-----[ FIND ]---------------------------------------------
# around line 340
//
// If we reach here then no (valid) session exists. So we'll create a new one,
#
#-----[ BEFORE, ADD ]---------------------------------------
#
elseif(empty($sessiondata))
{
// try to login guest
$sql = "SELECT u.*, s.*
FROM " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u
WHERE s.session_ip = '$user_ip'
AND s.session_user_id = " . ANONYMOUS . "
AND u.user_id = s.session_user_id
LIMIT 0, 1";
if ( !($result = $db->sql_query($sql)) )
{
message_die(CRITICAL_ERROR, 'Error doing DB query userdata row fetch', '', __LINE__, __FILE__, $sql);
}
$userdata = $db->sql_fetchrow($result);
if ( isset($userdata['user_id']) )
{
if ( $current_time - $userdata['session_time'] > 60 )
{
$sql = "UPDATE " . SESSIONS_TABLE . "
SET session_time = $current_time, session_start = $current_time, session_page = 0
WHERE session_id = '" . $userdata['session_id'] . "'";
if ( !$db->sql_query($sql) )
{
message_die(CRITICAL_ERROR, 'Error updating sessions table', '', __LINE__, __FILE__, $sql);
}
}
return $userdata;
}
}
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
|
_________________ Lisez la charte du forum
Moteur de recherche
Passer une annonce gratuite
Echange de lien webmasters |
|