Better Session Handling

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
Jadoo
Mitglied
Beiträge: 54
Registriert: 27.01.2006 20:29
Kontaktdaten:

Better Session Handling

Beitrag von Jadoo »

Hallo,

es gibt zwar schon ein Thema dazu (dieses), aber da es als "erledigt" gekennzeichnet ist, erstelle ich mal ein Neues, um Konfusion zu vermeiden.

Zu dem Problem mit der Schrift, die klein dargestellt wird, da denke ich liegt es an diesen %s Zeichen vor den Beschreibungen (lang_main.php), werde daran mal ausprobieren.

Desweiteren stört mich folgendes:

Neues Thema erstellen

- Entweder wird hier dann nur das Forum angezeigt, indem geschrieben wird (Forum: Sowieso), nicht aber, dass ein neues Thema erstellt wird, oder:
- Es wird angezeigt Forumphpbb2posting und der Link führt dann ebenso zur posting.php + den Modus für das gewählte Forum in dem geschrieben werden soll

Antwort schreiben

- Es wird wieder Forumphpbb2posting angezeigt anstatt zB. das Thema + Hinweis, dass dort geantwortet wird. Der Link führt dann auch nicht zum Thema hin, sonder zum Überblick dessen (die Übersicht der Beiträge, die unter dem Editor beim Schreiben angezeigt wird - posting.php?mode=topicreview&t=28

Forum Index

- Hier wird nicht sinnvollerweise die Beschreibung "Forum Index" angezeigt, sondern wieder so ein komisches WirrWarr: Forumphpbb2index

Link generell

- Ich habe zB. bei der Übersetzung der Beschreibung für Forenansicht eingegeben, dass dort stehen soll: Forum: X - wird auch so angezeigt, nur ist das Wort "Forum" ebenso anklickbar. Komischerweise wird beim betätigen dieses Wortes auch das Forum aufgerufen, bei dem Link, der unter dem Forennamen (X) sich befindet, wird in der URL aber der Pfad zum Forum nicht angegeben, sondern nur sowieso.de/viewforum.php

Beitrag editieren

- editiert jemand einen Beitrag, wird zwar ein Link zum entsprechenden Beitrag gegeben, den man als Admin oder Mod zB. dann auch aufrufen kann - aber sollte da nicht lieber nur der Link zum bestimmten Posting angegeben werden? Desweiteren wird als Beschreibung wieder angezeigt: Forumphpbb2posting :roll:

Bestimmten Beitrag lesen

- entweder wird hier nur das Forum angezeigt wo gelesen wird, oder:
- die Beschreibung (von mir übersetzt) "Liest einen Beitrag" - könnte man hier nicht auch noch anzeigen lassen, in welchem Thema sich dieser bestimmte Beitrag befindet (Link führt ja zum Thema hin) oder vielleicht auch den Link noch zu diesem bestimmten Beitrag führen lassen (viewtopic.php?p=8#8) ?

Berechtigung

Es werden auch versteckte Foren angezeigt und die Themen darin - auch das sollte nicht sein. Habe zwar schon einen Lösungsvorschlag entdeckt, allerdings bewirkt dieser zwar nur, dass entweder Admins oder Mods dann die Berechtigung haben - die User sollten aber auch etwas von der ausführlicheren Anzeige haben, ohne versteckte Foren sehen zu können.

Gibts hier Ideen oder Lösungsvorschläge? Danke!
Jadoo
Benutzeravatar
vb-biker
Mitglied
Beiträge: 260
Registriert: 04.03.2004 14:13
Wohnort: Kölle
Kontaktdaten:

Re: Better Session Handling

Beitrag von vb-biker »

Nabend,
Jadoo hat geschrieben: Neues Thema erstellen

- Entweder wird hier dann nur das Forum angezeigt, indem geschrieben wird (Forum: Sowieso), nicht aber, dass ein neues Thema erstellt wird, oder:
- Es wird angezeigt Forumphpbb2posting und der Link führt dann ebenso zur posting.php + den Modus für das gewählte Forum in dem geschrieben werden soll
Was in der sessions.php und lang_main.php nicht definiert ist, kann auch nicht vernünftig angezeigt werden.
Angezeigt wird der Pfad ohne Schrägstriche und ohne '.php' ab dem Forumroot ...schon mal besser als nix, so weiss man wenigstens, was nicht definiert ist. ;-)
Jadoo hat geschrieben: Antwort schreiben

- Es wird wieder Forumphpbb2posting angezeigt anstatt zB. das Thema + Hinweis, dass dort geantwortet wird. Der Link führt dann auch nicht zum Thema hin, sonder zum Überblick dessen (die Übersicht der Beiträge, die unter dem Editor beim Schreiben angezeigt wird - posting.php?mode=topicreview&t=28
Da müsste man 'mode=topicreview' ausschliessen können, da es neben 'mode=reply' mitgeladen wird...habe noch nicht raus, wie man das macht. Stört mich aber auch nicht sonderlich, da mir topicreview als Link zur Not auch reicht. Ich habe es so gelöst:
Finde in sessions.php

Code: Alles auswählen

				elseif (@strstr($url_ps, 'faq.'))
				$location = sprintf($lang['BSH_Viewing_FAQ'], '<a href="'. (($url_qs) ? $url_ps .'?'. $url_qs : $url_ps) .'" class="gen">', '</a>');
Danach einfügen:

Code: Alles auswählen

			elseif ( (@strstr($url_ps, 'posting.')) && (@strstr($url_qs, 'mode=reply')) || (@strstr($url_qs, 'mode=quote')) || (@strstr($url_qs, 'mode=topicreview')) )
				$location = sprintf($lang['BSH_Reply_Post'], '<a href="'. (($url_qs) ? $url_ps .'?'. $url_qs : $url_ps) .'" class="gen">', '</a>');
			elseif ( (@strstr($url_ps, 'posting.')) && (@strstr($url_qs, 'mode=newtopic')) )
				$location = sprintf($lang['BSH_New_Post'], '<a href="'. (($url_qs) ? $url_ps .'?'. $url_qs : $url_ps) .'" class="gen">', '</a>');
Die lang_main natürlich noch ensprechend anpassen mit bspw.

Code: Alles auswählen

$lang['BSH_Reply_Post']	= '%sAntwort schreiben%s';
$lang['BSH_New_Post']	= '%sNeues Thema eröffnen%s';
So paßt zumindest das mit der Anzeige.

Forum Index

- Hier wird nicht sinnvollerweise die Beschreibung "Forum Index" angezeigt, sondern wieder so ein komisches WirrWarr: Forumphpbb2index
Da bin ich überfragt, klappte bei mir ohne Anpassung.
Link generell

- Ich habe zB. bei der Übersetzung der Beschreibung für Forenansicht eingegeben, dass dort stehen soll: Forum: X - wird auch so angezeigt, nur ist das Wort "Forum" ebenso anklickbar. Komischerweise wird beim betätigen dieses Wortes auch das Forum aufgerufen, bei dem Link, der unter dem Forennamen (X) sich befindet, wird in der URL aber der Pfad zum Forum nicht angegeben, sondern nur sowieso.de/viewforum.php
Auch merkwürdig, normalerweise gelangt man bei dem Klick auf das Wort 'Forum' zu den allgemeinen Foreneinstellungen des entsprechenden Forums im ACP.

Code: Alles auswählen

[u][b]Beitrag editieren[/b][/u]

- editiert jemand einen Beitrag, wird zwar ein Link zum entsprechenden Beitrag gegeben, den man als Admin oder Mod zB. dann auch aufrufen kann - aber sollte da nicht lieber nur der Link zum bestimmten Posting angegeben werden? Desweiteren wird als Beschreibung wieder angezeigt: [i]Forumphpbb2posting[/i]  :roll: 
Siehe Code für 'mode=newtopic' oben. Das gleiche gilt für 'mode=editpost'...nur halt entsprechend anpassen und die lang_main nicht vergessen.
Bestimmten Beitrag lesen

- entweder wird hier nur das Forum angezeigt wo gelesen wird, oder:
- die Beschreibung (von mir übersetzt) "Liest einen Beitrag" - könnte man hier nicht auch noch anzeigen lassen, in welchem Thema sich dieser bestimmte Beitrag befindet (Link führt ja zum Thema hin)...
Das funktioniert eigentlich auch tadellos. Kontrolliere besser nochmal den Einbau, vllt. ist etwas schiefgelaufen.

Zu den Berechtigungen kann ich nix sagen, da ich die viewonline aussen vor gelassen habe... :D
Hast Du es auch mal mit einem ganz normalen Testuser probiert?
Zuletzt geändert von vb-biker am 19.01.2007 22:09, insgesamt 1-mal geändert.
Benutzeravatar
Jadoo
Mitglied
Beiträge: 54
Registriert: 27.01.2006 20:29
Kontaktdaten:

Re: Better Session Handling

Beitrag von Jadoo »

vb-biker hat geschrieben:
Jadoo hat geschrieben: Neues Thema erstellen

- Entweder wird hier dann nur das Forum angezeigt, indem geschrieben wird (Forum: Sowieso), nicht aber, dass ein neues Thema erstellt wird, oder:
- Es wird angezeigt Forumphpbb2posting und der Link führt dann ebenso zur posting.php + den Modus für das gewählte Forum in dem geschrieben werden soll
Was in der sessions.php und lang_main.php nicht definiert ist, kann auch nicht vernünftig angezeigt werden.
Angezeigt wird der Pfad ohne Schrägstriche und ohne '.php' ab dem Forumroot ...schon mal besser als nix, so weiss man wenigstens, was nicht definiert ist. ;-)
Mit dem Link meinte ich, dass der folgendes anzeigt: posting.php?mode=newtopic&f=49 was ja schon richtig ist, nur eben die Beschreibung nicht. Da könnte vielleicht auch die Beschreibung aus dem mode=newtopic&f=49 gefiltert werden, zB. so: Neues Thema erstellen in Forum 49. Komisch ist ja auch, dass er beides macht wie oben beschrieben. Entweder er zeigt nur das Forum an, also als wenn der User da nur lesen würde (Forum: 49) oder eben dieses forumphpBB2posting und die URL. Eigentlich soll er aber nur eines machen oder?
vb-biker hat geschrieben:
Forum Index

- Hier wird nicht sinnvollerweise die Beschreibung "Forum Index" angezeigt, sondern wieder so ein komisches WirrWarr: Forumphpbb2index
Da bin ich überfragt, klappte bei mir ohne Anpassung.
Ich finde es auch komisch, zumal ich in der lang_main auch "Forum Index" eingetragen habe.

Code: Alles auswählen

$lang['BSH_Index'] = '%sForum Index%s';
Ich werde mir alles nochmal genau anschauen, eventuell ist irgendwo ein Fehler drin. Werde auch den von dir zitierten Code mal berücksichtigen.

Wegen den Berechtigungen: Zur Not muss ich das eben nur im ACP einbauen, dann logg ich mich da eben immer ein.

Noch eine Idee: Ich habe vor Kurzem erst den Mod "Advanced IP Tool" eingebaut. Der hat u.a. auch an der session.php etwas verändert. Eventuell hängen die Störungen damit zusammen, weil sich da Codes überschneiden oder sowas. Werde das mal überprüfen.

LG
Benutzeravatar
bgx
Mitglied
Beiträge: 228
Registriert: 30.11.2005 22:32
Kontaktdaten:

Beitrag von bgx »

Wegen Berechtigung, das geht nicht richtig in dem Mod!

Ich habe es so gelösst und kann damit Leben:

viewonline.php

Code: Alles auswählen

if ( ($userdata['user_level'] == MOD) OR ($userdata['user_level'] == ADMIN) )
{
      $BSH = select_session_url('0', $row['session_url_qs'], $row['session_url_ps'], $row['session_url_specific'], $userdata['user_level'], $row['user_id'], $forums_data, $topics_data, $users_data, $cats_data);
      $location = $BSH;
}
Benutzeravatar
Jadoo
Mitglied
Beiträge: 54
Registriert: 27.01.2006 20:29
Kontaktdaten:

Beitrag von Jadoo »

Hallo bgx ... stimmt, anders lässt sichs nicht ändern.

Ich hab soeben mal einiges herumprobiert.

@ vb-biker

Dank

Code: Alles auswählen

 elseif ( (@strstr($url_ps, 'posting.')) && (@strstr($url_qs, 'mode=reply')) || (@strstr($url_qs, 'mode=quote')) || (@strstr($url_qs, 'mode=topicreview')) )
            $location = sprintf($lang['BSH_Reply_Post'], '<a href="'. (($url_qs) ? $url_ps .'?'. $url_qs : $url_ps) .'" class="gen">', '</a>');
         elseif ( (@strstr($url_ps, 'posting.')) && (@strstr($url_qs, 'mode=newtopic')) )
            $location = sprintf($lang['BSH_New_Post'], '<a href="'. (($url_qs) ? $url_ps .'?'. $url_qs : $url_ps) .'" class="gen">', '</a>');
lässt sich jetzt auch korrekt anzeigen, wenn jemand einen Beitrag schreibt oder ein neues Thema erstellt. Allerdings wird nicht angezeigt wo, sondern der Link führt auf die Index.

Und für die Index, da hab ich folgendes noch angefügt:

Code: Alles auswählen

                  elseif (@strstr($url_ps, 'index.'))
            $location = sprintf($lang['BSH_Index'], '<a href="'. (($url_qs) ? $url_ps .'?'. $url_qs : $url_ps) .'" class="copyright">', '</a>');
Jetzt wid auch die Index korrekt angezeigt und nicht mehr dieses WirrWarr. Für die Registrierung habe ich auch noch etwas hinzugefügt:

Code: Alles auswählen

                           elseif ( (@strstr($url_ps, 'profile.')) && (@strstr($url_qs, 'mode=register')) || (@strstr($url_qs, 'mode=confirm')) )
            $location = sprintf($lang['BSH_Register'], '<a href="'. (($url_qs) ? $url_ps .'?'. $url_qs : $url_ps) .'" class="gen">', '</a>');
Dann in der lang_main:

Code: Alles auswählen

$lang['BSH_Register']   = 'Registrieren';
Aber irgendwie ist es nicht das was es sein soll. Und bei Thema anzeigen kommt je nach Lust und Laune des Mods entweder Forum anzeigen oder Thema: sowieso .... was denn nu? Und der Link bei Forum stört mich immernoch. Im ACP wird dann die Einstellung zum Forum aufgerufen, da hast du Recht, aber unter dem Forumnamen weiterhin die URL zu diesem Forum aber direkt nach der Domain, also es fehlt der Pfad zum Forum ....

Ich glaub ich lass es sein :x
Benutzeravatar
vb-biker
Mitglied
Beiträge: 260
Registriert: 04.03.2004 14:13
Wohnort: Kölle
Kontaktdaten:

Beitrag von vb-biker »

Jepp, das mit dem Registrieren hatte ich auch so hingebastelt....
Jadoo hat geschrieben: Aber irgendwie ist es nicht das was es sein soll. Und bei Thema anzeigen kommt je nach Lust und Laune des Mods entweder Forum anzeigen oder Thema: sowieso .... was denn nu?
Da scheint immer noch irgendetwas nicht zu stimmen...
Funkt wunderbar bei mir - wenn ich mich nur in einem Forum aufhalte, wird dessen Name angezeigt; klick ich in einen Beitrag,
wird der entsprechende Beitragsname angezeigt.
Und die Links stimmen auch...
Vielleicht funkt bei Dir ja wirklich irgendein anderer Mod dazwischen, anders kann ich es mir nicht erklären.
Jadoo hat geschrieben:Und der Link bei Forum stört mich immernoch. Im ACP wird dann die Einstellung zum Forum aufgerufen, da hast du Recht, aber unter dem Forumnamen weiterhin die URL zu diesem Forum aber direkt nach der Domain, also es fehlt der Pfad zum Forum ....
???
Da komm ich nicht ganz mit, klingt auch sehr mysteriös. Kannst ja mal Deine sessions.php als Textdatei verlinken,
ich schau sie mir dann mal an. Versuch macht kluch... ;-)


// edit: Bzgl. dem Link zum Forum weiss ich jetzt, was Du meinst...hab mir die Original-Install nochmal angesehen...

Finde in sessions.php:

Code: Alles auswählen

		$url_ps		= '/viewforum.'. $phpEx;
ersetze mit:

Code: Alles auswählen

		$url_ps		= $phpbb_root_path .'viewforum.'. $phpEx;
Benutzeravatar
Jadoo
Mitglied
Beiträge: 54
Registriert: 27.01.2006 20:29
Kontaktdaten:

Beitrag von Jadoo »

Hallo,

danke, dass wird es sein mit dem Forum, werde das mal ersetzen und schauen.

Hier die Session:

http://home.arcor.de/jadoo/sessions.txt

Edit: Hier der relevante Teil vom Advanced IP Tools Mod:

Code: Alles auswählen

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


#
#-----[ FIND ]------------------------------------------
#
	global $HTTP_COOKIE_VARS, $HTTP_GET_VARS, $SID;


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

	// Start Advanced IP Tools Pack MOD
	global $user_agent;
	// End Advanced IP Tools Pack MOD


#
#-----[ FIND ]------------------------------------------
#
	$sql = "UPDATE " . SESSIONS_TABLE . "
		SET session_user_id = $user_id, session_start = $current_time, session_time = $current_time, session_page = $page_id, session_logged_in = $login


#
#-----[ IN-LINE FIND ]------------------------------------------
#
session_logged_in = $login


#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
, session_user_agent = '$user_agent'


#
#-----[ FIND ]------------------------------------------
#
		$sql = "INSERT INTO " . SESSIONS_TABLE . "
			(session_id, session_user_id, session_start, session_time, session_ip, session_page, session_logged_in)
			VALUES ('$session_id', $user_id, $current_time, $current_time, '$user_ip', $page_id, $login)";


#
#-----[ IN-LINE FIND ]------------------------------------------
#
session_ip,


#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
 session_user_agent,


#
#-----[ IN-LINE FIND ]------------------------------------------
#
'$user_ip',


#
#-----[ IN-LINE AFTER, ADD ]------------------------------------------
#
 '$user_agent',


#
#-----[ FIND ]------------------------------------------
#
		if ( !$db->sql_query($sql) )
		{
			message_die(CRITICAL_ERROR, 'Error updating last visit time', '', __LINE__, __FILE__, $sql);
		}


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

		// Start Advanced IP Tools Pack MOD
		$sql = "INSERT INTO " . LOGINS_TABLE . "
			(login_id, login_userid, login_ip, login_user_agent, login_time)
			VALUES (NULL, $user_id, '$user_ip', '$user_agent', $current_time)";
		if ( !$db->sql_query($sql) )
		{
			message_die(CRITICAL_ERROR, 'Error inserting login', '', __LINE__, __FILE__, $sql);
		}
		// End Advanced IP Tools Pack MOD
Benutzeravatar
vb-biker
Mitglied
Beiträge: 260
Registriert: 04.03.2004 14:13
Wohnort: Kölle
Kontaktdaten:

Beitrag von vb-biker »

Hm, Deine sessions.php ist in Ordnung soweit ich das beurteilen kann...beide Mods haben nichts ersetzt, sondern nur hinzugefügt.

Habe auch noch mal einen Langzeittest bei mir gemacht...läuft immer noch.

Das einzige, womit ich zu kämpfen hatte, war mein Link-Mod, den ich in die sessions mit reingenommen hatte.
Da wurde auch nach Lust und Laune entweder die Kategorie-Übersicht angezeigt oder die entsprechende Kategorie selbst.
Also habe ich im Code die Kategorie über die Kategorien-Übersicht gesetzt und siehe da....funzt.

Wie ist es denn, wenn Du in der Foren-Übersicht bist und anstatt in ein Forum und danach in einen Beitrag zu klicken sofort
auf 'letzten' Beitrag anzeigen? Ist es dann immer korrekt?
Wenn ja, dann probier doch auch mal, den Code zu tauschen, denn der code für viewforum steht vor dem Code für viewtopic.

Also das:

Code: Alles auswählen

		if ( (@strstr($url_qs, POST_FORUM_URL .'=')) && (@strstr($url_ps, 'viewforum.')) )
			{
			for ($z = 0; $z < count($forum_data); $z++)
				{
				if (!$forum_data[$z]['forum_id'])
					break;

				if ($specific == $forum_data[$z]['forum_id'])
					{
				$forum_name = $forum_data[$z]['forum_name'];
				break;
					}
				}
		$location = str_replace('%f%', '<a href="'. (($url_qs) ? $url_ps .'?'. $url_qs : $url_ps) .'" class="gen">'. $forum_name .'</a>', $lang['BSH_Viewing_Forums']);
			}
ausschneiden und nach

Code: Alles auswählen

		if ( (@strstr($url_qs, POST_TOPIC_URL .'=')) && (@strstr($url_ps, 'viewtopic.')) )
			{
			for ($z = 0; $z < count($topic_data); $z++)
				{
				if (!$topic_data[$z]['topic_id'])
					break;

				if ($specific == $topic_data[$z]['topic_id'])
					{
				$topic_name = $topic_data[$z]['topic_title'];
				break;
					}
				}
		$location = str_replace('%t%', '<a href="'. (($url_qs) ? $url_ps .'?'. $url_qs : $url_ps) .'" class="gen">'. $topic_name .'</a>', $lang['BSH_Viewing_Topic']);
			}
einfügen.

Bei mir funkt übrigens beides.

Ansonsten wüsste ich auch nicht weiter...
Benutzeravatar
Jadoo
Mitglied
Beiträge: 54
Registriert: 27.01.2006 20:29
Kontaktdaten:

Beitrag von Jadoo »

Hallo, habe nun folgendes gemacht:
vb-biker hat geschrieben:
Finde in sessions.php:

Code: Alles auswählen

		$url_ps		= '/viewforum.'. $phpEx;
ersetze mit:

Code: Alles auswählen

		$url_ps		= $phpbb_root_path .'viewforum.'. $phpEx;
Der Link wird jetzt korrekt angezeigt. So weit schon mal gut. Aber das tauschen des anderen Codes nützt nichts, jetzt wird nur noch das Forum angezeigt :x
Wie ist es denn, wenn Du in der Foren-Übersicht bist und anstatt in ein Forum und danach in einen Beitrag zu klicken sofort
auf 'letzten' Beitrag anzeigen? Ist es dann immer korrekt?
Wir auch nur das Forum angezeigt :-?

...

:(
Benutzeravatar
Jadoo
Mitglied
Beiträge: 54
Registriert: 27.01.2006 20:29
Kontaktdaten:

Beitrag von Jadoo »

Ich habe den BSH jetzt nochmal neu eingebaut, diesmal aber nur im ACP. Ich habe aber trotzdem den Abschnitt mit dem "viewforum" wieder ausgeschnitten und nach dem "viewtopic" eingefügt. Ein weiterer Test hat ergeben, dass, wenn direkt von der Index aus auf einen letzten Beitrag gegangen wird, wird wie es sein soll angezeigt: Liest einen Beitrag.

Ich denke, dass die Sache mit dem Forum an diesen 5 Minuten liegt. Wenn man ganz normal ein Thema liest, dann gelangt man ja erst ins Forum, danach ins Thema. Ich denke daran liegt es eventuell.

Verstehen tue ich es aber dann wiederum nicht, wenn ich gerade auf "Aktuelle Themen anzeigen" gehe (Recent Topics Mod) und von dort aus direkt ein Thema aufrufe, dann wird trotzdem angezeigt: "Forum: X" ... also liegt es doch nicht an den 5 Minuten Aktualisierungsübergang?

Ich lasse es erstmal so drin im ACP, etwas mehr wird ja immerhin schon angezeigt.

Danke an alle für die Hilfe ;)
Jadoo
Antworten

Zurück zu „phpBB 2.0: Mod Support“