Update von 2.0.17 zu 2.0.18

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Benutzeravatar
Zaubi
Beiträge: 62
Registriert: Do 16.Jun, 2005 09:07
Wohnort: L?bau - Oberlausitz
Kontaktdaten:

Beitrag von Zaubi »

Huhu oxpus,

es ist soweit, nachdem ich lange krank war und eigentlich immer noch nicht richtig ok,
hab ich mich Heute an dieses Big-Update auf 2.0.18 gewagt.
Tja, und nun bin ich bei der sessions.php in der der Last Visit Mod integriert ist.
Es ist das Problem von Dungonswatcher, aber ich habe keine zusätzliche Suchfunktion
eingebaut, .... also, gesucht ist das:

Code: Alles auswählen

//
					// Delete expired sessions
					//
					$expiry_time = $current_time - $board_config['session_length'];

					$sql = "DELETE FROM " . SESSIONS_TABLE . " 
						WHERE session_time < $expiry_time 
							AND session_id <> '$session_id'";
					if ( !$db->sql_query($sql) )
					{
						message_die(CRITICAL_ERROR, 'Error clearing sessions table', '', __LINE__, __FILE__, $sql);
					}
Soll ersetzt werden mit:

Code: Alles auswählen

session_clean($userdata['session_id']);
Bei mir ist in dem gesuchten Codeschnipsel zusätzlich das drin:

Code: Alles auswählen

WHERE UNIX_TIMESTAMP() - session_time >=172800
Sieht also so aus:

Code: Alles auswählen

                                        //
                                        // Delete expired sessions
                                        //
                                        $expiry_time = $current_time - $board_config['session_length'];
                                        $sql = "DELETE FROM " . SESSIONS_TABLE . "
                                        WHERE
UNIX_TIMESTAMP() - session_time >=172800
                                                        AND session_id <> '$session_id'";
                                        if ( !$db->sql_query($sql) )
                                        {
                                                message_die(CRITICAL_ERROR, 'Error clearing sessions table', '', __LINE__, __FILE__, $sql);
                                        }
Wenn ich diese Stelle mit:

Code: Alles auswählen

session_clean($userdata['session_id']);
ersetze, wo soll dann das hin?

Code: Alles auswählen

WHERE UNIX_TIMESTAMP() - session_time >=172800
Und in den Antworten zu Dungonswatcher wird WHERE mit AND ersetzt,
ist das denn korrekt?

Dann wird gleich als nächstes dies gesucht:

Code: Alles auswählen

//
// session_end closes out a session
// deleting the corresponding entry
// in the sessions table
//
function session_end($session_id, $user_id)
{
	global $db, $lang, $board_config;
	global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;

	$cookiename = $board_config['cookie_name'];
	$cookiepath = $board_config['cookie_path'];
	$cookiedomain = $board_config['cookie_domain'];
	$cookiesecure = $board_config['cookie_secure'];

	$current_time = time();

	//
	// Pull cookiedata or grab the URI propagated sid
	//
	if ( isset($HTTP_COOKIE_VARS[$cookiename . '_sid']) )
	{
		$session_id = isset( $HTTP_COOKIE_VARS[$cookiename . '_sid'] ) ? $HTTP_COOKIE_VARS[$cookiename . '_sid'] : '';
		$sessionmethod = SESSION_METHOD_COOKIE;
	}
	else
	{
		$session_id = ( isset($HTTP_GET_VARS['sid']) ) ? $HTTP_GET_VARS['sid'] : '';
		$sessionmethod = SESSION_METHOD_GET;
	}

	if (!preg_match('/^[A-Za-z0-9]*$/', $session_id))
	{
		return;
	}
	
	//
	// Delete existing session
	//
	$sql = "DELETE FROM " . SESSIONS_TABLE . " 
		WHERE session_id = '$session_id' 
			AND session_user_id = $user_id";
	if ( !$db->sql_query($sql) )
	{
		message_die(CRITICAL_ERROR, 'Error removing user session', '', __LINE__, __FILE__, $sql);
	}

	setcookie($cookiename . '_data', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);
	setcookie($cookiename . '_sid', '', $current_time - 31536000, $cookiepath, $cookiedomain, $cookiesecure);

	return true;
}
Und da fehlt bei mir diese eine Zeile 16:

Code: Alles auswählen

	$current_time = time();
Ist das schlimm?

Noch eine Frage.
In einigen Beiträgen habe ich gelesen, das einige gesuchte Codeschnipsel 2- oder
3-fach vorkommen. Oxpus schrieb, alle Stellen sollen dann editiert werden.
Ich mache die Updates immer manuell und gehe Schritt für Schritt nach den
Anleitungen, mir würde gar nicht auffallen, wenn Stellen mehrfach vorkommen,
wenn sie in der Updateanleitung nicht mehrfach beschrieben sind. So habe
ich jetzt also auf Garantie keine Doppel- oder Dreifachschnipsel geändert.
Meint ihr, dass man sowas wirklich nicht dazuschreiben würde? grübel

Wenn es dann aber wirklich notwendig wäre, welche Stellen treten mehrfach auf?

Sorry für meine Anfragen, .... auf Hilfe hoff, ....
winkeeee Zaubi
Zuletzt geändert von Zaubi am Mi 28.Dez, 2005 13:19, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Teil 1:
Ersetze es nur und lass die Zeile aus dem Last-Visit MOD weg!
Also

Code: Alles auswählen

WHERE UNIX_TIMESTAMP() - session_time >=172800
ignorieren.

Teil 2:
Ebenfalls ignorieren.
Diese eine Zeile ist für das Update an sich nicht wichtig.

Zu den mehrfachen Code-Schnipseln:
Achtung! Ich habe das nicht so pauschal gesagt!
Nur, wenn ein anderer MOD diese Stellen "vervielfacht", sind diese mit zu modden.
Ansonsten gilt immer: Nur die nächste "Fundstelle" bearbeiten, die man nach der letzten gemoddeten Stelle aus findet!
Das ist grundsätzlich immer so!
Ansonsten werden diese "mehrfachen" Stellen auch immer einzeln genannt.
Dabei aber Vorsicht: In einigen Dateien, wie z. B. der search.php, sind einige Stellen sehr ähnlich. Hier ist genau darauf zu achten, daß man wirklich die korrekte Stele bearbeitet!!!

BTW:
Ich hoffe, Du hast Dich gut erholt ¦4
Zuletzt geändert von oxpus am Mi 28.Dez, 2005 16:57, insgesamt 1-mal geändert.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Zaubi
Beiträge: 62
Registriert: Do 16.Jun, 2005 09:07
Wohnort: L?bau - Oberlausitz
Kontaktdaten:

Beitrag von Zaubi »

huhu oxpus,

danke für die schnelle antwort.

hab es so gemacht, wie du empfohlen hast.
ob ich durch andere mods auch solche doppel oder dreifach codeschnipsel habe,
weiß ich leider nicht. auf den ersten blick schien alles ok zu sein, aber der test
brachte nun eine fehlermeldung, wenn ich posten möchte.

Code: Alles auswählen

Parse error: parse error, unexpected T_VARIABLE in /web/phpBB2/posting.php on line 646
Linie 646 sieht bei mir so aus:

Code: Alles auswählen

                $user_sig = ( $post_info['user_sig'] != '' $userdata['user_sig_bbcode_uid'] = $post_info['user_sig_bbcode_uid']; && $board_config['allow_sig'] ) ? $post_info['user_sig'] : '';
ich hab den einbau in der posting.php nochmal kontrolliert, alles ist so, wie es sein soll.
woran könnte es denn liegen?

winkeee zaubi
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Dazu müsstest Du ein paar Zeilen mehr posten, die dieser Zeile vorweg kommen.
Irgendwo fehlt dort eine schliessende Klammer oder ein Semikolon am Zeilenende...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Zaubi
Beiträge: 62
Registriert: Do 16.Jun, 2005 09:07
Wohnort: L?bau - Oberlausitz
Kontaktdaten:

Beitrag von Zaubi »

ich weiß nicht, ob das reicht?

Zeile 635 - 647

Code: Alles auswählen

        if ( isset($poll_add) && !empty($HTTP_POST_VARS['add_poll_option_text']) )
        {
                $poll_options[] = htmlspecialchars(trim(stripslashes($HTTP_POST_VARS['add_poll_option_text'])));
        }

        if ( $mode == 'newtopic' || $mode == 'reply')
        {
                $user_sig = ( $userdata['user_sig'] != '' && $board_config['allow_sig'] ) ? $userdata['user_sig'] : '';
        }
        else if ( $mode == 'editpost' )
        {
                $user_sig = ( $post_info['user_sig'] != '' $userdata['user_sig_bbcode_uid'] = $post_info['user_sig_bbcode_uid']; && $board_config['allow_sig'] ) ? $post_info['user_sig'] : '';
        }
Oder soll ich die ganze posting.php mal posten?
Danke dir schon mal, ..

winkeeee Zaubi
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ne, hast recht, reicht noch nicht.
Häng die mal ganz an und ich schaue nachher oder morgen da rein.
Jetzt aber erstmal ins Nachtleben...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Zaubi
Beiträge: 62
Registriert: Do 16.Jun, 2005 09:07
Wohnort: L?bau - Oberlausitz
Kontaktdaten:

Beitrag von Zaubi »

huhu oxpus,

ich hab noch etwas rumgesucht und dann bei phpbb.de einen post gefunden,
nachdem die stelle so aussehen soll:

Code: Alles auswählen

$user_sig = ( $post_info['user_sig'] != '' && $board_config['allow_sig'] ) ? $post_info['user_sig'] : ''; 
      $userdata['user_sig_bbcode_uid'] = $post_info['user_sig_bbcode_uid']; 
   }
wenn man nach anleitung geht, kommt man da nicht hin, es ist einfach etwas umgedreht,
aber es geht tatsache nun wieder. ich glaube damit wäre das posting.php problem gelöst,

aaaber, mir ist aufgefallen, das meine gästeanzahl extrem wenig geworden ist, nach dem
update und nachdem die anzahl wieder angestiegen war, fiel die anzahl wieder,
dafür hatte ein user eine idee, könntest du da bitte, mit erfahrenem auge, mal drauf schaun?
ich hab ja, wie oben schon beschrieben, den last visit mod drin und die eine zeile haben
wir in der session.php weggelassen. nun fehlt da vielleicht doch etwas?
lösungsvorschlag lautet:

Code: Alles auswählen

finde: 
------------------------------------------------------- 
    $sql = 'DELETE FROM ' . SESSIONS_TABLE . ' 
      WHERE session_time < ' . (time() - (int) $board_config['session_length']) . " 
         AND session_id <> '$session_id'"; 
------------------------------------------------------- 
ersetze durch: 
------------------------------------------------------- 
   $sql = "DELETE FROM " . SESSIONS_TABLE . " 
      WHERE session_time < '" . (time() - 86400) . "' 
         AND session_id <> '$session_id'"; 
eingebaut hab ichs erstmal, weiß aber noch nicht, ob es funzelt. zumindest wird
meine "alte" gästeanzahl von heute nicht wieder angezeigt.

Viel Spaß im Nightlife ;)
winkeeeee Zaubi

EDIT: und/oder kann man die "time"-zahl hochsetzen,
wie sie ursprünglich in dieser zeile war? "WHERE UNIX_TIMESTAMP() - session_time >=172800"
also dann so:

Code: Alles auswählen

$sql = "DELETE FROM " . SESSIONS_TABLE . " 
      WHERE session_time < '" . (time() - 172800) . "' 
         AND session_id <> '$session_id'"; 
winkeee Zaubi
Zuletzt geändert von Zaubi am Mi 28.Dez, 2005 22:17, insgesamt 2-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nein, verwende hier ausschliesslich die Original-Anweisung! Alles andere kann zu mehr Last führen und die Tabelle unnötig füllen.
Ebenso ist es dann nicht mehr ohne weiteres Möglich, die Session-Länge auch im ACP einzustellen. Die Möglichkeit wurde hier auch erst wieder neu geschaffen ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Zaubi
Beiträge: 62
Registriert: Do 16.Jun, 2005 09:07
Wohnort: L?bau - Oberlausitz
Kontaktdaten:

Beitrag von Zaubi »

Schmunzel, .... etwas verwirrtschau, ..
Original war (time() - 172800) das sind 2 Tage in Sekunden.
Im Moment läufts mit (time() - 86400), das ist ein Tag, prima.
Welche Variante meinst du?

winkee Zaubi
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Die Originale, also

Code: Alles auswählen

	$sql = 'DELETE FROM ' . SESSIONS_TABLE . ' 
		WHERE session_time < ' . (time() - (int) $board_config['session_length']) . " 
			AND session_id <> '$session_id'";
Nur damit ist gewährleistet, daß sich das Script Deinen Angaben im ACP anpasst.
Falls man mal die Session-Länge ändern möchte.
Und wenn Du das für den Last Visit MOD machen willst, dann eben genau im ACP (Allgemein > Einstellungen > Cookies) und nicht im Script!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
Zaubi
Beiträge: 62
Registriert: Do 16.Jun, 2005 09:07
Wohnort: L?bau - Oberlausitz
Kontaktdaten:

Beitrag von Zaubi »

Aber damit passiert es dann wieder, dass die Anzahl der Gäste rückläufig ist.
Nicht dass weniger Leute da sind, sondern dass die angezeigte Anzahl einfach
wieder geringer wird. Erst sind 7 gezählt, dann nur noch 4 am Tag.

Was genau bewirkt das Ändern der Sessionlänge? Wenn ich richtig denke,
dass ein User, egal ob Gast oder Mitglied, bei Erhöhung der Zahl z.Bsp.
auf 86400 den ganzen Tag als online erscheint? Oder hab ich da jetzt nen
absoluten Denkfehler?

winkeeee Zaubi
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nein, die Session wird damit nur verlängert. Also die Zeit, in der das Forum eine inaktive Session nicht beendet, sondern weiter führt.
Das ist dann aber eher ein Sicherheitsrisiko, steht aber in Verbindung mit der Besuchhäufigkeit Deiner User.
Also pauschaliert:
Kommen die User seltener, ist die Sessionlänge zu erhöhen. Kommen die häufiger oder ist Dir Sicherheit sehr wichtig, sollte die Sessionlänge möglichst kurz sein.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Die erste Stelle finden und dann ab dort die 2. Stelle suchen und finden.
Das ist Absicht, da es ansonsten zu Verwechslungen kommen kann.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Es sind an den Zeilenanhängen Leerzeichen vorhanden, die einfach durch Tabulatoren ersetzt werden. Das verringert die Scriptgrösse "enorm"!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nein, das ist ein "echtes" REPLACE WITH.
Kannst Du aber auch komplett ignorieren, wenn es Dich stört oder halt durchführen.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Sorry, ich wollte Dich nicht auslachen, ich sah nur sowas aber schon lange nicht mehr.

Öhmpf, zum Fehler:
Dann ist dort irgend eine Link-Definition defekt.

Hm.

Mir scheint, daß in der index.php der falsche Link drinnen stecken könnte. Komisch, daß asiatische Zeichen angezeigt werden...

Vielleicht aber auch in einer geänderten TPL-Datei, in der ein Link "zerstört" wurde. Ist aber bei dieser Fehlermeldung doch etwas unwahrscheinlicher...

Prüfe doch mal die Update-Änderungen der index.php und auch page_header.php. Vielleicht auch noch die sessions.php mit nachsehen...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nun, in den Templates würde ich schon alle Änderungen machen, denn neben Layout-Fehlern (die im fisubsilversh nicht alle vorhanden sein müssen) werden schliesslich auch neue Felder eingebunden, in der login_body.tpl die Checkbox für das ACP-Login ausgeblendet, etc...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
ToXic
Beiträge: 103
Registriert: Fr 04.Mär, 2005 10:37

Beitrag von ToXic »

Hi Oxpus,
es ist doch zum Haare ausraufen. Ich habe das andere Board heute auch (vorerst auf 2.0.18) updated, und scheitere (wie ein paar Posts vorher) schon wieder an der Posting.php.
Parse error: syntax error, unexpected T_VARIABLE in /www/htdocs/xxxxxxx/phpBB2/posting.php on line 994
Du hast mir ja die Posting.php (die ist von einem anderen Board) geändert. Diese habe ich heute mal für dieses Board genommen und ein testpost geschrieben. Funktioniert.

Frage, kann ich diese bedenkenlos in diesem Board verwenden? Falls nicht wäre es äusserst nett von dir wenn du dir besagte Posting.php einmal anschauen könntest.

Im Voraus bereits vielen dank für deine Bemühungen :-)

MfG
ToXic
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ersetze mal

Code: Alles auswählen

		$user_sig = ( $post_info['user_sig'] != ''$userdata['user_sig_bbcode_uid'] = $post_info['user_sig_bbcode_uid']; && $board_config['allow_sig'] ) ? $post_info['user_sig'] : '';
durch

Code: Alles auswählen

		$user_sig = ( $post_info['user_sig'] != '' && $board_config['allow_sig'] ) ? $post_info['user_sig'] : '';
		$userdata['user_sig_bbcode_uid'] = $post_info['user_sig_bbcode_uid'];
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
ToXic
Beiträge: 103
Registriert: Fr 04.Mär, 2005 10:37

Beitrag von ToXic »

Ersetze mal
Vielen Dank, genau das wars :-) Morgen mache ich mich dann an das Update zu 2.0.19. Ich habs jetzt lange genug vor mir hergeschoben.

MfG
ToXic
Antworten