Seite 1 von 1

Beiträge immer als ungelesen markiert

Verfasst: 13.08.2003 01:14
von Mario
Seit ich gestern den Last Visit Mod eingebaut habe, tritt das Problem auf das alle Beiträge seit gestern für alle Besucher auf ungelesen markiert bleiben. Bleiben sie eingeloggt (also automatisch einloggen) passiert das anscheinend nicht.

Ich habs mal probiert indem ich mich selber ausgeloggt und wieder eingeloggt habe, nach dem einloggen waren alle Beiträge seit gestern wieder auf ungelesen.

Woran kann das liegen oder in welcher Datei wo muß ich suchen?

Verfasst: 13.08.2003 13:38
von Mario
also das ganze passiert nur dann wenn man den IE schließt, also man loggt sich vorher aus, schließt den IE, geht wieder rein und loggt sich ein, dann werden alle Beiträge seit vorgestern als ungelesen markiert.

Schleißt man den IE nicht und loggt sich ein und aus, dann passiert das nicht.

Ich habe jetzt auch festgestellt, das wenn Gäste beiträge schreiben werden die teilweise doppelt eingestellt, ich selber habs als gast probiert, da wurde der beitrag allerdings nicht doppelt eingestellt.

Da keiner ne lösung weiß muß ich den Last Visit mod wohl wieder ausbauen, mal sehen ob es dann geht?

Verfasst: 13.08.2003 13:40
von Mario
achso, weiß vielleicht einer über welche php, oder tpl das gesteuert wird (mit gelesen und ungelesen)?

Verfasst: 13.08.2003 14:44
von Mario
so ich habe mal folgenden code wieder herausgenommen, bzw. die modifizioerte session.php durch die originale erstetzt:

Code: Alles auswählen

# 
#-----[ OPEN ]------------------------------------------ 
# 
includes/sessions.php

# 
#-----[ FIND ]------------------------------------------ 
# 
if ( !empty($session_id) )
{
# 
#-----[ AFTER, ADD ]------------------------------------------ 
# 
$expiry_time = $current_time - $board_config['session_length'] ;

# 
#-----[ FIND ]------------------------------------------ 
# 
$sql = "SELECT u.*, s.*
	FROM " . SESSIONS_TABLE . " s, " . USERS_TABLE . " u
	WHERE s.session_id = '$session_id'
		AND u.user_id = s.session_user_id";

# 
#-----[ IN-LINE FIND ]------------------------------------------ 
# 
";

# 
#-----[ IN-LINE BEFORE, ADD ]------------------------------------------ 
# 
 AND session_time > $expiry_time

# 
#-----[ FIND ]------------------------------------------ 
# 
$sql = "DELETE FROM " . SESSIONS_TABLE . " 
WHERE session_time < $expiry_time 

#
#-----[ IN-LINE FIND ]------------------------------------------ 
# 
session_time < $expiry_time
# 
#-----[ IN-LINE REPLACE WITH ]------------------------------------------ 
# 
some users might need to replace the ".time()." with UNIX_TIMESTAMP()
".time()." - session_time >=172800

# 
#-----[ FIND ]------------------------------------------ 
# 
if ( $user_id != ANONYMOUS )
{
$last_visit = ( $userdata['user_session_time'] > 0 ) ? $userdata['user_session_time'] : $current_time; 
$sql = "UPDATE " . USERS_TABLE . " 

# 
#-----[ IN-LINE FIND ]------------------------------------------ 
# 
, user_lastvisit = $last_visit

# 
#-----[ IN-LINE AFTER, ADD ]------------------------------------------ 
#
, user_lastlogon = " . time() .  "
Das komische ist der Last Visit Mod schein immer noch zu funktionieren, sieht zumindest auf den ersten Blick so aus, kann einer den "Verursacher" in dem Code entdecken??

Verfasst: 13.08.2003 14:46
von Henne
Der hat ja auch viele Teile. Kann ja sein, dass er teilweise noch funktioniert.
ich denke, dass das eher nen Cookieproblem ist.

Verfasst: 13.08.2003 14:52
von Mario
hi. ne cookies sind okay, ging ja vorher auch alles wunderbar, habe aber gerade festgestellt das er nicht mehr funktioniert:

Hier nochmal zur ansicht die kaputte sessions_php

www.kost-kein-geld.de/text/sessions.txt

vielleicht findet ja einer einen Fehler?

Verfasst: 13.08.2003 16:45
von Mario
hi, es liegt scheinbar an dieser Codepassage, UNIX_Timestamp geht garnicht.

Code: Alles auswählen

// Delete expired sessions
					//
					$expiry_time = $current_time - $board_config['session_length'];
					$sql = "DELETE FROM " . SESSIONS_TABLE . " 
						WHERE ".time()." - session_time >=172800 
							AND session_id <> '$session_id'";
					if ( !$db->sql_query($sql) )
was beudeuten die 172800 ?? Sekunden?

Verfasst: 13.08.2003 17:07
von Mario
so fehler ist behoben, habe mir eine andere sessions.php mit eingebauten Last Vist mod besorgt, damit gehts.... warum auch immer?? :-?