Ik heb het sessie inlog systeem uit phpbb gesloopt.
Ik wil dus dat als mensen op een pagina komen, en die functie wordt uitgevoerd dat ze worden ingelogt op het forum.
Het lijkt of die functie totaal niet werkt. Heeft iemand een oplossing hiervoor? Miss is er een bestaand script dat wel werkt.
Regelmatig kom je als je via de pagina gekomen bent niet meer op het forum. de sessie db moet dan eerst leeggemaakt worden
mijn code:
Code: Selecteer alles
function encode_ip($dotquad_ip)
{
$ip_sep = explode('.', $dotquad_ip);
return sprintf('%02x%02x%02x%02x', $ip_sep[0], $ip_sep[1], $ip_sep[2], $ip_sep[3]);
}
function session_begin($user_id, $user_ip)
{
// bestaande sessie wissen en opnieuw neerzetten. werkte btw ook niet
//mysql_query("DELETE FROM `forum_sessions` WHERE `session_ip` = '".$user_ip."' LIMIT 1;");
global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;
$cookiename = 'RPG_';
$cookiepath = $board_config['cookie_path'];
$cookiedomain = $board_config['cookie_domain'];
$cookiesecure = $board_config['cookie_secure'];
if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) || isset($HTTP_COOKIE_VARS[$cookiename . '_data']) )
{
$session_id = isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';
$sessiondata = isset($HTTP_COOKIE_VARS[$cookiename . '_data']) ? unserialize(stripslashes($HTTP_COOKIE_VARS[$cookiename . '_data'])) : array();
$sessionmethod = SESSION_METHOD_COOKIE;
}
else
{
$sessiondata = array();
$session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';
$sessionmethod = SESSION_METHOD_GET;
}
//
if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))
{
$session_id = '';
}
$last_visit = 0;
$current_time = time();
$expiry_time = $current_time - $_SESSION['sec_online'];
//
// Try and pull the last time stored in a cookie, if it exists
//
$sql = "SELECT *
FROM forum_users
WHERE user_id = $user_id";
if ( !$result = mysql_query($sql) )
{
mysql_fout($sql, mysql_error());
}
$userdata = mysql_fetch_array($result);
if ( $user_id != ANONYMOUS )
{
$auto_login_key = $userdata['user_password'];
if ( $auto_create )
{
}
else
{
$login = 1;
}
}
else
{
$login = 0;
$enable_autologin = 0;
}
//
// Create or update the session
//
$sql = "INSERT INTO forum_sessions
(session_id, session_user_id, session_start, session_time, session_ip, session_logged_in)
VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $login)";
if ( !mysql_query($sql) )
{
$session_id = md5(uniqid($user_ip));
$sql = "UPDATE forum_sessions
SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_logged_in = $login
WHERE session_id = '" . $session_id . "'
AND session_ip = '$user_ip'";
if ( !mysql_query($sql) )
{
mysql_fout($sql, mysql_error());
}
}
if ( $user_id != ANONYMOUS )
{// ( $userdata['user_session_time'] > $expiry_time && $auto_create ) ? $userdata['user_lastvisit'] : (
$last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time;
$sql = "UPDATE forum_users
SET user_session_time = $current_time, user_lastvisit = $last_visit
WHERE user_id = $user_id";
if ( !mysql_query($sql) )
{
mysql_fout($sql, mysql_error());
}
$userdata['user_lastvisit'] = $last_visit;
$sessiondata['autologinid'] = ( $enable_autologin && $sessionmethod == SESSION_METHOD_COOKIE ) ? $auto_login_key : '';
$sessiondata['userid'] = $user_id;
}
setcookie($cookiename . '_data', serialize($sessiondata), $current_time + 31536000);
setcookie($cookiename . '_sid', $session_id, 0);
$SID = 'sid=' . $session_id;
}