Pagina 1 van 1

Auto inlog

Geplaatst: 07 mar 2005, 15:08
door site.to.make
Ik hen een klein probleempje.

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;



}

aanroepen doe ik btw goed...

Geplaatst: 07 mar 2005, 18:23
door Duvelske
Snap het probleem niet echt :oops:

Geplaatst: 08 mar 2005, 09:35
door site.to.make
als die functie uitgevoerd word moet hij automatisch inloggen. nu is het zo dat je helemaal niet meer kan inloggen als je de functie heb uitgevoerd