Last_Visit_MOD: Kriege einfach die sessions.php nicht hin :(

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
DerGonzo
Mitglied
Beiträge: 732
Registriert: 14.09.2005 12:22
Wohnort: Dorsten

Last_Visit_MOD: Kriege einfach die sessions.php nicht hin :(

Beitrag von DerGonzo »

Moin!

Habe die 2.0.17-Version und versuche den Last-Visit-Mod einzubauen, bzw hab es schon getan. Abgesehen von der Anzeige in der Mitgliederliste und der Profile scheint auch alles zu klappen.
Online-Dauer, Anzahl der Besuche, letzter Besuch usw. werden nicht korrekt angezeigt.
Über die Suche habe ich nun herausgefunden, daß das Problem wohl irgendwo in der includes/sessions.php liegen muß.

laut Anleitung soll ich folgendes tun:

Code: Alles auswählen

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

# 
#-----[ FIND ]------------------------------------------------ 
#
	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 " . USERS_TABLE . " 
SET

# 
#-----[ IN-LINE FIND ]---------------------------------------- 
# 
		if (!$admin)
		{
# 
#-----[ Replace with ]--------------------------------- 
# 
//		if (!$admin)
//		{

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

# 
#-----[ IN-LINE AFTER, ADD ]---------------------------------- 
#
, user_lastlogon = " . time() .  ", user_totallogon=user_totallogon+1

# 
#-----[ FIND ]------------------------------------------------ 
# 
$sessiondata['userid'] = $user_id;
}

# 
#-----[ IN-LINE FIND ]---------------------------------------- 
# 
}

# 
#-----[ IN-LINE BEFORE, ADD ]--------------------------------- 
# 
//

# 
#-----[ FIND ]------------------------------------------------ 
# 
if ( !empty($session_id) )
{

# 
#-----[ AFTER, ADD ]------------------------------------------ 
#

// Start add - Last visit MOD
$expiry_time = $current_time - $board_config['session_length'] ;
// End add - Last visit MOD

# 
#-----[ 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 ]------------------------------------------------ 
# 
					if ( $userdata['user_id'] != ANONYMOUS )
					{
						$sql = "UPDATE " . USERS_TABLE . " 
							SET user_session_time = $current_time, user_session_page = $thispage_id, user_totalpages = user_totalpages+1, user_totaltime = user_totaltime+($current_time-".$userdata['session_time'].")

# 
#-----[ IN-LINE FIND ]---------------------------------------- 
# 
					if ( $userdata['user_id'] != ANONYMOUS )
					{
# 
#-----[ Replace with ]--------------------------------- 
# 
//					if ( $userdata['user_id'] != ANONYMOUS )
//					{
# 
#-----[ IN-LINE FIND (vierte) ]---------------------------------------- 
# 
$thispage_id

# 
#-----[ IN-LINE AFTER, ADD ]---------------------------------- 
# 
, user_totalpages = user_totalpages+1, user_totaltime = user_totaltime+($current_time-".$userdata['session_time'].")

# 
#-----[ FIND ]------------------------------------------------ 
# 
}

//
// Delete expired sessions



# 
#-----[ FIND ]------------------------------------------------ 
# 
WHERE session_time < $expiry_time

# 
#-----[ IN-LINE FIND ]---------------------------------------- 
# 
session_time < $expiry_time

# 
#-----[ IN-LINE REPLACE WITH ]-------------------------------- 
# 
UNIX_TIMESTAMP() - session_time >=172800

#
Habe die Datei vorher zum Glück gesichert, denn ich habe jetzt 5x vergeblich versucht, diese Aktionen auszuführen :oops:
Bekomme ständig Fehlermeldungen und mein Board ist nicht mehr erreichbar. Die Fehlermeldungen beziehen sich alle auf die sessions.php in line xyz (da war z.B. eine geschweifte Klammer vor die ich dann probeweise die // gestellt hatte, dann weitere Fehlermeldungen). Ich blick echt nicht mehr durch... :o

Kann jemand bitte meinen Versuch gegenlesen und mir sagen, was ich falsch gemacht habe?
Solange laß ich erstmal die alte sessions.php laufen, so ist wenigstens das Board erreichbar...
Benutzeravatar
Markus67
Ehrenadmin
Beiträge: 28346
Registriert: 12.01.2004 16:02
Wohnort: Neuss
Kontaktdaten:

Beitrag von Markus67 »

Hi ...

versuchs mal mit der hier ...
sessions.php

Markus
Benutzeravatar
DerGonzo
Mitglied
Beiträge: 732
Registriert: 14.09.2005 12:22
Wohnort: Dorsten

Beitrag von DerGonzo »

Hab Deinen Vorschlag hochgeladen und in der Chatbox diese Fehlerneldung erhalten:

Code: Alles auswählen

phpBB : Kritischer Fehler 

Error clearing sessions table

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNIX_TIMESTAMP() - session_time >=172800 AND session_i

DELETE FROM phpbb_sessions UNIX_TIMESTAMP() - session_time >=172800 AND session_id <> '2b6cc07612e11005d9a44a75e679bd27'

Line : 331
File : sessions.php 
Die Anzeigen funktionieren nicht.

*edit*
Mein Hoster ist kontent.de und ich habe dort MySQL 4.0.16
Benutzeravatar
Markus67
Ehrenadmin
Beiträge: 28346
Registriert: 12.01.2004 16:02
Wohnort: Neuss
Kontaktdaten:

Beitrag von Markus67 »

Hi ...

sorry ... mein Fehler beim copy&paste

suche:

Code: Alles auswählen

	UNIX_TIMESTAMP() - session_time >=172800
ersetze mit:

Code: Alles auswählen

					WHERE UNIX_TIMESTAMP() - session_time >=172800
Markus
Benutzeravatar
DerGonzo
Mitglied
Beiträge: 732
Registriert: 14.09.2005 12:22
Wohnort: Dorsten

Beitrag von DerGonzo »

Bei mir und meinem Testaccount scheint es zu klappen... *magafroi*

Sorry, wenn die Frage jetzt blöd is, aber ichnehme an, die anderen User müssen sich erst einloggen, bevor die Änderung wirksam wird?

Erstmal einen Mega-Riesendank für Deine Hilfe! :wink:
Ich hoffe, dafür kann ich mich dann am 15. beim Treffen der Ruhrpott-Usergroup erkenntlich zeigen... :D
Benutzeravatar
Markus67
Ehrenadmin
Beiträge: 28346
Registriert: 12.01.2004 16:02
Wohnort: Neuss
Kontaktdaten:

Beitrag von Markus67 »

Hi ...
Sorry, wenn die Frage jetzt blöd is, aber ichnehme an, die anderen User müssen sich erst einloggen, bevor die Änderung wirksam wird?
yep ... erst dann wird das Feld aktualisiert :wink:

Markus
Benutzeravatar
DerGonzo
Mitglied
Beiträge: 732
Registriert: 14.09.2005 12:22
Wohnort: Dorsten

Beitrag von DerGonzo »

Oki, dann ist das Problem wohl gelöst :grin:

Danke, daß Du mir (mal wieder) geholfen hast!
Benutzeravatar
-=Fable=-
Mitglied
Beiträge: 491
Registriert: 16.09.2005 19:12
Wohnort: Nahe Lüneburg
Kontaktdaten:

Beitrag von -=Fable=- »

Meine will auch nicht funzen..Kann cihd ie Session-.php jetzt auch für mein phpbb 2.0.17 nehmen? Ja oder?
Benutzeravatar
CrYiNg
Show-Off Team
Beiträge: 1256
Registriert: 01.05.2005 10:33

Beitrag von CrYiNg »

Kommt darauf an, ob diese session.php MODfrei ist. :wink:
Benutzeravatar
-=Fable=-
Mitglied
Beiträge: 491
Registriert: 16.09.2005 19:12
Wohnort: Nahe Lüneburg
Kontaktdaten:

Beitrag von -=Fable=- »

stimmt :D aber das krieg ich nich raus...Hab jetzt alle Dateien gemoddet nur die Session.php halt nich...Kann leider auf meinem Funpic webspace noch nich extern verlinken :(
Antworten

Zurück zu „phpBB 2.0: Mod Support“