Das Loginskript funktioniert und ist bei mir momentan auf jeder Seite fest eingebaut - soweit kein Problem, wenn der User auf einer "festen" Seite ist. Ist jedoch auf einer Seite die von den piVars abhängt (News anzeigen) sind die piVars nach dem Login (und Logout) leider weg und es erscheint "keine news_id übergeben".
Wie löst man das Problem am einfachsten? Ich vermute stark, dass mir die redirect Scripts für die Newloginbox nicht viel helfen werden, da diese meist nur auf PID linken.
Achja, die URL soll auch nicht verstümmeln nach dem Motto: www.url.de/tralal.html?redirect_url=zielseite.htm :-)
Mein Ansatz wäre es, den Wert für die richtige Redirect URL im Quelltext der Newloginbox zu setzen.
hmmm.. also ich habe es soweit, dass der Link im Redirect_URL Feld schon einmal prinzipiell richtig ist. Also auch mit tx_ttnews[tt_news]=34 und so. Aber es funktioniert trotzdem nicht, er berücksichtigt beim redirect komischer weise lediglich die Variable id. #paralyzed#
ok, eine kleine Nachhilfestunde in post und get gedöns hat mich auf die Idee gebracht, dass selbst die beste URL im redirect nicht funktioniert, wenn method auf post gestellt ist.
Also hab ich mir nun zwei hidden Fields in die Loginbox gecodet in der die News ID und der cHash-Wert gespeichert wird. Diese werden dann im Loginbox-Code mit Werten gefüllt.
Aber ob das jetzt so geschickt ist!? Jetzt müsst ich das ja für jeder erdenkliche Variable die irgendwo auf meiner Seite auftaucht schreiben!?
Ich hatte das gleiche Problem in meiner Extension. Ich generiere dort Links auf die Login-Seite (mit newloginbox) und hänge den Parameter 'redirect_url' an.
Ich habe das Problem gelöst, indem ich an die &-Zeichen durch das Ascii-Äquivalent ersetzt habe:
// & in $referer has to be replaced (for tt_news and indexed_serch)
$referer = str_replace('&', '%26', $referer);
Somit kommt der Referer nicht mehr zerstückelt, sondern als ein langer String im Login-Skript an.
Vorher (zerstückelt):
redirect_url = nachricht.html?
tx_ttnews[tt_news]=145
tx_ttnews[backPid]=5
cHash=8ff9d4eef2
Nachher (mit %26):
redirect_url = nachricht.html?&tx_ttnews[tt_news]=145&tx_ttnews[backPid]=5&cHash=8ff9d4eef2[/img]
damits mit Realurl und den unterschiedlichsten Extensions funktioniert nutze ich nun folgenden Code-Hack:
$markerArray['###ACTION_URI###'] = htmlspecialchars($_SERVER['REQUEST_URI']);
statt wie üblich:
$markerArray['###ACTION_URI###'] = htmlspecialchars($this->pi_getPageLink($GLOBALS['TSFE']->id, '_top'));
Grüße Simon