Offtopic
palicora Mh das sind ja dürftige Infos?...
Nicht eingeloggt

Registrieren
Login

hans
Neuling

- 22.05.10 18:03 Uhr
hallo,

in der neuen version vom forum werden ja die minuten angezeigt, wie lange man schon online ist, aber wenn man mal offline war, werden sie ja zurück gesetzt, wie stelle ich das um, dass sie nicht zurück gesetzt werden, sondern immer dableiben und die neuen nur dazu gezählt werden ?

Abgemeldet
- 23.05.10 00:59 Uhr
Hallo,

Ersetze in der includes/user.php :

Code:
$db->query('

                UPDATE ' . USERS_TABLE . '
                SET    user_login = ' . $TimeLoginRow['user_login'] . ",
                    user_ip = '" . $_SERVER['REMOTE_ADDR'] . "'
                WHERE user_id = " . $row['user_id']
            );


durch :

Code:
$TimeLogin = $db->query("
                SELECT `user_login` FROM '" . USERS_TABLE . "'
                WHERE user_id = '" . $row['user_id'] . "'
            ");
            
            $TimeLoginRow = $db->fetch_array($TimeLogin);
            

            $db->query('

                UPDATE ' . USERS_TABLE . '
                SET    user_login = ' . $TimeLoginRow['user_login'] . ",
                    user_ip = '" . $_SERVER['REMOTE_ADDR'] . "'
                WHERE user_id = " . $row['user_id']
            );


Sollte gehen, wenn nicht , bitte melden.

//iSn0w

hans
Neuling

- 23.05.10 10:42 Uhr
Geht leider nicht.
Es kommt immer folgender Fehler:

Parse error: syntax error, unexpected '=' in /users/xbeta/www/includes/user.php on line 88

Abgemeldet
- 23.05.10 12:49 Uhr
Poste doch mal die 88 Zeile..

mfg
iSn0w

hans
Neuling

- 23.05.10 17:06 Uhr
Jetzt ist der Fehler in Zeile 10. :/

Habe sicherheitshalber mal alles kopiert.

Code:
<?php
/**
*
* @package Itschi
* @since 2007/05/25
*
*/

class user
{
    var 
$row false;
    var 
$session 'user';
    var 
$cookie_lifetime 2678400;
    var 
$ranks_cache = array();
    var 
$session_started false;

    function 
user()
    {
        if (!empty(
$_REQUEST[session_name()]))
        {
            
$this->session_started true;
            
session_start();
        }

        if (empty(
$_SESSION[$this->session]))
        {
            if (isset(
$_COOKIE['username']) && isset($_COOKIE['password']))
            {
                
$this->login($_COOKIE['username'], $_COOKIE['password']);
            }
        }
        else
        {
            
$this->update_vars();

            if (
$this->row['user_ban'])
            {
                
$this->check_ban($this->row['user_id'], $this->row['user_ban']);
            }

            
$this->set_lastvisit();
        }

        
$this->online_global();
    }

    function 
login($username$password$autologin false$redirect '')
    {
        global 
$db;

        
$res $db->query('

            SELECT *
            FROM ' 
USERS_TABLE "
            WHERE username = '" 
$db->chars($username) . "'
                AND user_password = '" 
$db->chars($password) . "'
        "
);

        
$row $db->fetch_array($res);
        
$db->free_result($res);

        if (!
$row['user_id'])
        {
            return 
false;
        }
        else
        {
            if (
$row['user_unlock'])
            {
                
message_box('Du hast deine E-Mail noch nicht best&auml;tigt''/''zur&uuml;ck zur Startseite');
            }

            if (
$row['user_ban'])
            {
                
$this->check_ban($row['user_id'], $row['user_ban']);
            }

            if (!
$this->session_started)
            {
                
session_start();
                
$this->session_started true;
            }

            
$_SESSION[$this->session] = $row['user_id'];

            
$this->row $row;

$TimeLogin $db->query("
SELECT `user_login` FROM '" 
USERS_TABLE "'
WHERE user_id = '" 
$row['user_id'] . "'
"
);

$TimeLoginRow $db->fetch_array($TimeLogin);


$db->query('

UPDATE ' 
USERS_TABLE '
SET user_login = ' 
$TimeLoginRow['user_login'] . ",
user_ip = '" 
$_SERVER['REMOTE_ADDR'] . "'
WHERE user_id = " 
$row['user_id']
);

            if (
$autologin)
            {
                
setCookie('username'$row['username'], time() + $this->cookie_lifetime'/');
                
setCookie('password'$row['user_password'], time() + $this->cookie_lifetime'/');
            }

            
$db->query('

                DELETE FROM ' 
ONLINE_TABLE "
                WHERE online_ip = '" 
$_SERVER['REMOTE_ADDR'] . "'
                    AND user_id = " 
$row['user_id']
            );

            
$db->query('

                UPDATE ' 
ONLINE_TABLE '
                SET user_id = ' 
$row['user_id'] . "
                WHERE online_ip = '" 
$_SERVER['REMOTE_ADDR'] . "'
                    AND user_id = 0
            "
);

            
$this->set_lastvisit();
            
$this->online_global();

            if (
$redirect)
            {
                
header('Location: ' $redirect);
            }
        }

        return 
true;
    }

    function 
logout()
    {
        if (empty(
$_SESSION[$this->session]))
        {
            return 
false;
        }

        global 
$db;

        
$db->query('

            UPDATE ' 
ONLINE_TABLE '
            SET user_id = 0
            WHERE user_id = ' 
$this->row['user_id']
        );

        
setCookie('username''', -3600'/');
        
setCookie('password''', -3600'/');

        
$this->set_lastvisit(false);
        
$this->row false;
        
$this->online_global();

        
session_destroy();
        unset(
$_SESSION[$this->session]);
        
setCookie(session_name(), '', -3600'/');

        return 
true;
    }

    function 
online_global()
    {
        global 
$db;

        
$sid session_id();
        
$agent $db->chars(trim(substr($_SERVER['HTTP_USER_AGENT'], 0149)));
        
$ip $_SERVER['REMOTE_ADDR'];
        
$user_id = (int)$this->row['user_id'];

        if (
$user_id)
        {
            
$res $db->query('

                SELECT COUNT(*)
                FROM ' 
ONLINE_TABLE '
                WHERE user_id = ' 
$user_id
            
);

            
$row $db->result($res0);
            
$db->free_result($res);

            if (
$row 0)
            {
                
$db->query('

                    UPDATE ' 
ONLINE_TABLE '
                    SET    user_id = ' 
$user_id ',
                        online_lastvisit = ' 
time() . ",
                        online_agent = '" 
$agent "'
                    WHERE user_id = " 
$user_id
                
);

                
$db->query('

                    DELETE FROM ' 
ONLINE_TABLE '
                    WHERE online_lastvisit < ' 
. (time() - 300)
                );

                return;
            }
        }

        
$res $db->query('

            SELECT COUNT(*)
            FROM ' 
ONLINE_TABLE "
            WHERE online_ip = '" 
$ip "'
                AND user_id = 0
        "
);

        
$row $db->result($res0);
        
$db->free_result($res);

        if (
$row 0)
        {
            
$db->query('

                UPDATE ' 
ONLINE_TABLE '
                SET    user_id = ' 
$user_id ',
                    online_lastvisit = ' 
time() . ",
                    online_agent = '" 
$agent "'
                WHERE online_ip = '" 
$ip "'
                    AND user_id = 0
            "
);
        }
        else
        {
            
$db->query('

                INSERT INTO ' 
ONLINE_TABLE '
                (user_id, online_lastvisit, online_ip, online_agent) VALUES
                (' 
$user_id ', ' time() . ", '" $ip "', '" $agent "')
            "
);
        }

        
$db->query('

            DELETE FROM ' 
ONLINE_TABLE '
            WHERE online_lastvisit < ' 
. (time() - 300)
        );
    }


    function 
set_lastvisit($time true)
    {
        if (!
$this->row)
        {
            return;
        }

        global 
$db;

        
$db->query('

            UPDATE ' 
USERS_TABLE '
            SET user_lastvisit = ' 
. (($time) ? time() : 0) . '
            WHERE user_id = ' 
$this->row['user_id']
        );
    }

    function 
update_vars()
    {
        if (!isset(
$_SESSION[$this->session]))
        {
            return;
        }

        global 
$db;

        
$res $db->query('

            SELECT *
            FROM ' 
USERS_TABLE '
            WHERE user_id = ' 
. (int)$_SESSION[$this->session]
        );

        
$this->row $db->fetch_array($res);
        
$db->free_result($res);
    }

    function 
check_ban($user_id, &$ban)
    {
        global 
$db;

        
$res $db->query('

            SELECT ban_id, ban_time, ban_reason
            FROM ' 
BANLIST_TABLE '
            WHERE user_id = ' 
$user_id
        
);

        
$row $db->fetch_array($res);
        
$db->free_result($res);

        if (!
$row['ban_id'])
        {
            return;
        }

        if (
$row['ban_time'] > time())
        {
            if (
$this->row)
            {
                
$this->logout();
            }

            
message_box('Du wurdest gesperrt bis: ' date('d.m.Y H:i'$row['ban_time']) . ' Uhr<br />Grund: <i>' 

htmlspecialchars($row['ban_reason']) . '</i>''index.php''zur&uuml;ck zur Startseite');
        }

        
$db->query('

            UPDATE ' 
USERS_TABLE '
            SET user_ban = 0
            WHERE user_id = ' 
$user_id
        
);

        
$ban 0;
    }

    function 
legend($level)
    {
        switch (
$level)
        {
            case 
USER:    return '';
            case 
MOD:    return 'mod';
            case 
ADMIN:    return 'admin';
        }
    }

    function 
set_rank($user_id$rank_id$posts)
    {
        if (!isset(
$this->ranks))
        {
            global 
$cache;

            
$this->ranks $cache->get('ranks');
        }

        if (
$rank_id)
        {
            
$this->ranks_cache[$user_id] = array($this->ranks[$rank_id]['rank_title'], $this->ranks[$rank_id]['rank_image']);
        }
        else
        {
            foreach (
$this->ranks[0] as $p => $rank)
            {
                if (
$posts >= $p)
                {
                    
$this->ranks_cache[$user_id] = array($rank['rank_title'], $rank['rank_image']);
                    return;
                }
            }
        }

        
$this->ranks[$user_id] = array('''');
    }

    function 
rank($user_id$rank_id$posts)
    {
        if (!isset(
$this->ranks_cache[$user_id]))
        {
            
$this->set_rank($user_id$rank_id$posts);
        }

        return 
$this->ranks_cache[$user_id][0];
    }

    function 
rank_icon($user_id$rank_id$posts)
    {
        if (!isset(
$this->ranks_cache[$user_id]))
        {
            
$this->set_rank($user_id$rank_id$posts);
        }

        return 
$this->ranks_cache[$user_id][1];
    }

    function 
online()
    {
        global 
$db;

        
$res $db->query('

            SELECT COUNT(*)
            FROM ' 
ONLINE_TABLE '
            WHERE online_lastvisit > ' 
. (time() - 300)
         );

        
$row $db->result($res0);
        
$db->free_result($res);

        return 
$row;
    }
}

?>


Der Eintrag wurde am 23.05.10 17:06 Uhr von hans geändert.
goeran
Ehrenmitglied

- 23.05.10 17:56 Uhr
Wenn möglich als Code in einem Spoiler. Wenn nicht möglich, bitte als Text (ebenso im Spoiler).

Der Eintrag wurde am 23.05.10 18:05 Uhr von goeran geändert.
Abgemeldet
- 23.05.10 18:35 Uhr
Poste doch mal die Zeile die im Error erwähnt wird!

mfg
iSn0w

goeran
Ehrenmitglied

- 23.05.10 18:40 Uhr
Zitat von iSn0w:
Poste doch mal die Zeile die im Error erwähnt wird!

mfg
iSn0w


Er sagte doch, das der Fehler in Zeile 10 ist. Ich schätze aber, da in Zeile 10 ein { steht, ist es das: var $row = false;

Oder liege ich dort falsch ?

Abgemeldet
- 23.05.10 18:41 Uhr
Es geht mir darum, wenn man ein Problem hat dann sollte man auch die Fehlermeldung + Fehlerzeile hinschreiben, oder kann hier jemand zaubern?!

mfg
iSn0w

goeran
Ehrenmitglied

- 23.05.10 18:44 Uhr
Zitat von iSn0w:
Es geht mir darum, wenn man ein Problem hat dann sollte man auch die Fehlermeldung + Fehlerzeile hinschreiben, oder kann hier jemand zaubern?!

mfg
iSn0w


Ich habe das Thema nicht eröffnet. Ich habe lediglich eine Hilfestellung geleistet. Stelle deine Kritik doch bitte an den Themen-Autoren.

Nicht vom Thema abweichen.

Der Eintrag wurde am 23.05.10 18:45 Uhr von goeran geändert.
Seite 1 von 4 - 1 2 3 4 Beitrag schreiben


©2011 Itschi.Net