[TYPO3-german] Nicht eingeloggten User bei Aufruf geschützer Seite...

Kussmann, Juergen j.kussmann at t-online.net
Wed May 10 16:30:55 CEST 2006


1. Gehe ins Install-Tool
2. Schreibe folgendes in die Option 'pageNotFound_handling': USER_FUNCTION:typo3conf/pageNotFoundHandling.php:user_pageNotFound->pageNotFound
3. Erzeuge die entsprechende Datei 'pageNotFoundHandling.php' in 'typo3conf':

<?
/******************************************************************************************************************************************/
/* Diese Klasse wird aufgerufen, wenn eine TYPO3-Seite aufgrund von fehlenden Berechtigungen nicht aufgerufen werden kann.                */
/* Sie fuehrt einen Redirect zu einer Info-Seite durch, damit der User weiss warum die angeforderte Seite nicht aufgerufen werden konnte. */
/*                                                                                                                                        */
/* Der Aufruf dieser Klasse wird in der TYPO3-Installations-Konfiguration 'pageNotFound_handling' definiert.                              */
/* Author: Juergen Kussmann, 24.02.2006                                                                                                   */
/******************************************************************************************************************************************/

class user_pageNotFound {
        function pageNotFound ($param,$ref) {
                // get ID of 'toi_pageNotFound_handling'-Page (must exist under the Root-Page)
                global $TYPO3_DB;
                $res = $TYPO3_DB->exec_SELECTquery('uid','pages','title="toi_pageNotFound_handling" and pid='.$ref->rootLine[0]['uid']);
                while($row = $TYPO3_DB->sql_fetch_assoc($res)) {
                        $pageNotFound_handlingID = $row['uid'];
                }
                $TYPO3_DB->sql_free_result($res);

                // get ID of requested Page
                preg_match('/id\=([0-9]{1,})/i',$_SERVER['QUERY_STRING'],$match);
                $originalID = $match[1];

                // redirect to 'toi_pageNotFound_handling'-Page
                $url = $_SERVER['SCRIPT_URI'].'?id='.$pageNotFound_handlingID.'&redirect_url='.urlencode('index.php?id='.$originalID);
                header('location:'.$url);
                exit();
        } // END function
} // END class
?>

4. Ändere den Code unter Punkt 3 ab: Diese Funktion ermittelt die UID der Seite, welche aufgerufen werden soll und führt ein Redirect durch. Ich habe der Seite einen eindeutigen Namen gegeben,damit ich die UID nicht hard coden musste. Wenn du die Extension 'newloginbox' benutzt, so muss sich der User nur noch anmelden und wird automatisch auf die Seite weitergeleitet, welche er ursprünglich aufgerufen hatte....ist eine nettes Feature ;-)

Viele Grüsse,

Jürgen Kußmann
-----Original Message-----
From: Stefan Bothner | [m]zentrale [mailto:stefan at m-zentrale.de] 
Sent: Wednesday, May 10, 2006 4:10 PM
To: typo3-german at lists.netfielders.de
Subject: [TYPO3-german] Nicht eingeloggten User bei Aufruf geschützer Seite...

Hi,

folgendes Szenario, ein User war angemeldet und
hat sich eine URL eines geschützten Bereichs
als Bookmark angelegt. So, User meldet sich
ab und ruft dann die Seite aus seinen Bookmarks
auf. Es erscheint unter verwendung von TV! eine
leere Seite, ich kann auch nicht indentifizieren 
welche es ist.

So, er soll aber auf die Loginseite weitergeleitet werden,
wie kann ich das anstellen?

Danke

Stefan





More information about the TYPO3-german mailing list