Seite 1 von 3

Hilfe beim Last Visit Mod

Verfasst: 12.05.2005 23:50
von Balder
Bekomme beim installieren des Last Visits Mod diesen Fehler (installiere es per Easymod)

Code: Alles auswählen

Kritischer Fehler

FINDE FEHLGESCHLAGEN: Konnte in Zeile [includes/sessions.php] nicht finden:

if ( 
{// ( 
$last_visit = ( 
$sql = "UPDATE " . USERS_TABLE . " 
SET 

MOD Skript Linie #509 :: FAQ :: Report
benutze die neuste phpbb Version hat einer vielleicht eine Idee :)

Verfasst: 12.05.2005 23:54
von -Jo-
Ich kenne mich mit dem Easymod nicht aus, aber ich glaube, Du musst die SQL-Anweisung vorab per Hand erledigen.

Die neueste Version EasyModInstaller beta v0.1.13 kann auch Datenbankänderungen machen. Allerdings nur wenn die in der Anleitung mit angegeben wurden und nicht über eine zusätzliche Datei (z.B. db_update.php) gemacht werden. Daher stimmt der folgende Abschnitt nur noch teilweise.
Bei manchen MODs sind ja Änderungen an der Datenbank notwendig. Diese Befehle werden unter "Nicht verarbeitete Befehle" angezeigt und müssen separat ausgeführt werden, so wie es in der Meldung steht bzw. wie es der Autor vorgesehen hat. In den meisten Fällen handelt es sich dabei um aus dem Forumroot aufzurufende DB_UPDATE.PHP´s oder anders bezeichnete SQL-Installer, die dann wie gesagt aus dem Forumroot, also dort wo auch die viewforum.php oder die profile.php liegt, ein mal aufgerufen werden müssen. Diese SQL-DB-Installer Dateien sollten danach dann wieder aus Sicherheitsgründen gelöscht werden... Je nach MOD muss man ggf. auch Datenbankändeungen über den phpMyAdmin erledigen, wenn der Autor keine solche SQL-DB-Installer Datei beigefügt hat...
Quelle:"Easy Mod Installer" - Installation & Nutzung


Gruß,
Jo.

Verfasst: 12.05.2005 23:56
von Christian Benz
Hallo,

rein aus dem Gedächtnis: Die angegebenen Zeilen sind nur zum Teil zitiert (und in Wirklichkeit länger), daher findet Easymod diesen Teil nicht. Versuche diese Stelle besser einfach mal selbst mittels Editor zu bearbeiten.

Gruß,
Chris

Selbe Problem ...

Verfasst: 16.05.2005 10:52
von Silver Surfer
Hallo,

habe exakt das selbe Problem. Bekomme dieselbe Fehlermeldung wie Balder.

Habe dann man versucht, die Stelle von Hand zu finden, will mir aber auch nicht gelingen, da jede Zeile etliche Male vorkommt.

Kann mir da jemand helfen?
Oder @Balder:

Wenn du die Lösung gefunden hast, kannst du sie hier mal posten?

Danke schön,
...

Verfasst: 16.05.2005 13:21
von Supersonic
Suche in der sessions.php nach

Code: Alles auswählen

$last_visit = (
ist nur einmal vorhanden

Der ganze Block lautet:

Code: Alles auswählen

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 user_session_time = $current_time, user_session_page = $page_id, user_lastvisit = $last_visit
			WHERE user_id = $user_id";

Verfasst: 16.05.2005 13:52
von roger
@supersonic: der ganze Block lautet in der neuesten Version:

Code: Alles auswählen

	// 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;

roger

Verfasst: 16.05.2005 14:28
von Supersonic
Aber erst nach dem Last-Visit Einbau ;)

Vielen Dank

Verfasst: 16.05.2005 19:36
von Silver Surfer
Hallo, vielen Dank .... :grin:

Ich habe nun das Script so angepasst, das der EM es ausführen konnte. Da fehlten definitiv ganze Ausdrücke. In der deutschen lang_main.php war auch noch ein Syntaxfehler (Zeile 1046), abgesehen von Rechtschreibfehlern .....

Alles in allem eine schwere Geburt, dieser Mod ... LOL

Danke für Eure Hilfe,
Grüße,
...

Verfasst: 19.05.2005 09:40
von ibuerfei
@Silver Surfer

hi,

habe die gleichen probleme wie du und versucht das script anzupassen.
aber irgendwas stimmt immer noch nicht. könntest du mir dein komplettes geändertes script schicken?

dank und gruss
ingo

Auschnitt der Änderung

Verfasst: 19.05.2005 11:35
von Silver Surfer
Hallo,

leider kann ich sie dir momentan nicht schicken. Aber ein schnelles Copy&Paste kann ich noch machen:

Code: Alles auswählen

# 
#-----[ 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; 

		if (!$admin)
		{
			$sql = "UPDATE " . USERS_TABLE . " 
                            SET

# 
#-----[ IN-LINE FIND ]---------------------------------------- 
# 
if

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

# 
#-----[ IN-LINE FIND ]---------------------------------------- 
# 
{

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

# 
#-----[ 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
WHERE
AND

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

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

# 
#-----[ FIND ]------------------------------------------------ 
# 
if ( $userdata['user_id'] != ANONYMOUS )
{
$sql =
SET

# 
#-----[ IN-LINE FIND ]---------------------------------------- 
# 
if

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

# 
#-----[ IN-LINE FIND ]---------------------------------------- 
# 
{

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

# 
#-----[ IN-LINE FIND ]---------------------------------------- 
# 
$thispage_id

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

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

//
// Delete expired sessions

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

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

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

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

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

# 
#-----[ OPEN ]------------------------------------------------ 
So sieht nun der entsprechende Abschnitt aus. Wenn ich am Wochenende wieder zuhause bin, kann ich notfalls mehr tun. Aber eigentlich sollte so schon alles klappen ... ;)

Grüße,
...