Hallo Jens !
Alexander, es funktioniert !!! Das gibt erstmal pauschal einen
Stern von mir. :o)
Brrr, das ist ja Java und kein JavaScript, das ist antürlich
etwas anderes.
Sorry, mit Java und ihren Arten habe ich mich noch nicht
befasst. Mir reichen HTML, PHP und MySQL fürs erste.
$menu = preg_replace("/^(.*)\|(.*)\?(.*)$/m",
„\1|\2?\3&“.SID,$menu);
Suche nach
^ am Zeilenanfang
(.*) ein oder mehrere beliebige Zeichen, die sich gemerkt werden
\| danach eine | (Die \ sind nötig, weil | eine Sonderbedeutung hat)
(.*) ein oder mehrere beliebige Zeichen, die sich gemerkt werden
\? dann ein ?
(.*) ein oder mehrere beliebige Zeichen, die sich gemerkt werden
$ das Zeilenende
Ersetze durch
\1 gemerketen Ausdruck 1
| ne Pipe
\2 gemerketen Ausdruck 2
? nen Fragezeichen
\3 gemerketen Ausdruck 3
& und die SID
$menu = preg_replace("/^(.*)\|([^?\r\n]*)$/m",
„\1|\2?“.SID,$menu);
Suche nach
^ am Zeilenanfang
(.*) ein oder mehrere beliebige Zeichen, die sich gemerkt werden
\| danach eine | (Die \ sind nötig, weil | eine Sonderbedeutung hat)
([^?\r\n]*) ein oder mehrere Zeichen, die kein ? oder Zeilenende sind, die sich gemerkt werden
$ das Zeilenende
Ersetze durch
\1 gemerketen Ausdruck 1
| ne Pipe
\2 gemerketen Ausdruck 2
? nen Fragezeichen und die SID
Könntest Du mir nur mal grob das preg_replace erklären, eh ich
mich durch die Syntax gewühlt habe? (Achtung, fauler Jens !)
Und warum zwei Anweisungen? Würde nicht eine reichen?
Weil die SID einmal mit & (schon Parameter angegeben) und einmal mit ? (noch keine Parameter) angehangen werden muss.
Ich habe das ganze mal offline ausprobiert und es wird bei
jedem Seitenaufruf eine neue SID erzeugt. Das dürfte doch
eigentlich nicht sein, oder? Session_start erzeugt doch nur
eine neue Session, wenn keine alte vorhanden ist?
Ja. Hast du im param-Tag des Applet auch „menu.php?“.SID verwendet ? Da muss die SID mit übergeben werden…
Außerdem quält mich die Frage nach der Rechenzeit. menu.txt
ist über 70KB groß. Und da noch die SID dranhängen, bei jedem
Seitenaufruf? Offline gehts ziemlich schnell, aber online?
Naja, PHP macht das ja bei enable-trans-sid auch automatisch für alle Links.
Alle PHP - Systeme, die Sessions verwalten, müssen ggfs. die URLs umschreiben.
Du könntest, bevor du ersetzt, mal in $_COOKIE nachsehen, on die SID per Cookie weitergegeben wird, dann kannst du die das Ersetzen sparen.
Außerdem kannst du das Menu auch nach dem Ersetzen in $_SESSION speichern, dann brauchst du nur ein Mal pro Benutzer zu ersetzen.
Solche Optimierungen habe ich nicht mit dazugeschrieben…
Alexander