Seite 2 von 4

Re: Error Pages Viewonline

Verfasst: 14.02.2012 21:19
von BNa
Die Lösung ist nun klar. on_page unterstützt keine Parameter und die fehlende Anzeige war warscheinlich ein Sprach Datei Problem.

Daher die Lösung

Öffne

viewonline.php

Finde

Code: Alles auswählen

    $template->assign_block_vars('user_row', array( 
Davor füge ein

Code: Alles auswählen

     // Errorpages in Viewonline
     if (strpos($row['session_page'], 'mode=400') !== false)
     {
         $location = $user->lang['ERROR_VIEWONLINE_400'];
         $location_url = append_sid("{$phpbb_root_path}error.$phpEx");
     }

else if (strpos($row['session_page'], 'mode=401') !== false)
     {
         $location = $user->lang['ERROR_VIEWONLINE_401'];
         $location_url = append_sid("{$phpbb_root_path}error.$phpEx");
     }

else if (strpos($row['session_page'], 'mode=403') !== false)
     {
         $location = $user->lang['ERROR_VIEWONLINE_403'];
         $location_url = append_sid("{$phpbb_root_path}error.$phpEx");
     }
     
else if (strpos($row['session_page'], 'mode=404') !== false)
     {
         $location = $user->lang['ERROR_VIEWONLINE_404'];
         $location_url = append_sid("{$phpbb_root_path}error.$phpEx");
     }    
     
else if (strpos($row['session_page'], 'mode=500') !== false)
     {
         $location = $user->lang['ERROR_VIEWONLINE_500'];
         $location_url = append_sid("{$phpbb_root_path}error.$phpEx");
     }
     // Errorpages in Viewonline       

Dieser Code ist getestet.

Die folgende Variante geht natürlich auch, wobei hier $row['session_page'] als Switch initiiert wird, obwohl kein echter Bezug zum Case existiert. Daher halte ich die erste Variante für performanter

Code: Alles auswählen

    switch ($row['session_page'])
    {
        case strpos($row['session_page'], 'mode=400') !== false :
            $location = $user->lang['ERROR_VIEWONLINE_400'];
            $location_url = append_sid("{$phpbb_root_path}error.$phpEx");
        break;
        
        // etc.
    } 
Eine Anpassung der Error Seiten könnte noch hilfreich sein

Also statt

Code: Alles auswählen

append_sid("{$phpbb_root_path}error.$phpEx"); 
etwas differenzierter

Code: Alles auswählen

append_sid("{$phpbb_root_path}error400.$phpEx"); 

Re: Error Pages Viewonline

Verfasst: 15.02.2012 16:03
von Malte
Hallo,

ich habe nun die erste Variante ausprobiert. Vom Prinzip her funktioniert sie, aber ist immer noch nicht ganz fehlerfrei...

1. Die Sprachvariablen sollte ich eigentlich noch extern einbinden, aber das ist im Moment nur nebensächlich. Ich habe es erstmal über die normale common.php gemacht. Ein wichtigeres Problem ist jedoch ein anderes:

Egal, was ich aufrufe, auch wen ich eine Datei aufrufe, die einen 403 Error anzeigt, beispielsweise die config.php, zeigt er permanent in der Onlineliste 404 Error an. Ich weiß nicht, ob das an dem Code liegt, den ich ja eigentlich als richtig erachte, das sieht mir eher, nach anderen Fehlern aus.

Weißt du, was das sein kann?

Re: Error Pages Viewonline

Verfasst: 15.02.2012 18:52
von BNa
Sorry aber

Code: Alles auswählen

            // Grab some common modules
            $url_params = array(
                'mode=400'        => 'ERROR_VIEWONLINE_400',
                'mode=401'        => 'ERROR_VIEWONLINE_401',
                'mode=403'        => 'ERROR_VIEWONLINE_403',
                'mode=404'        => 'ERROR_VIEWONLINE_404',
                'mode=500'        => 'ERROR_VIEWONLINE_500',
            );
Im Original-Code wird unterstellt, das die Modi sauber übertragen werden, zB. blabla/error.php?mode=400 Den Code habe ich getestet mit einem richtigen Resultat error.php?mode=400. Check nochmal die Grundlagen, dann reden wir weiter.

Re: Error Pages Viewonline

Verfasst: 15.02.2012 19:06
von Malte
Was hat der Originalcode, jetzt damit zu tun? Also ich habe leider immer noch die Erfahrung, dass er Partout immer 404 Error anzeigt, ich kann mir das nicht erklären. Sogar, wenn ich error.php?mode=403 direkt aufrufe, zeigt die Onlineliste einen 404 Error.

Re: Error Pages Viewonline

Verfasst: 15.02.2012 19:16
von BNa
Malte hat geschrieben:

Code: Alles auswählen

case 'error':
            $location = $user->lang['ERROR'];

            // Grab some common modules
            $url_params = array(
                'mode=400'        => 'ERROR_VIEWONLINE_400',
                'mode=401'        => 'ERROR_VIEWONLINE_401',
                'mode=403'        => 'ERROR_VIEWONLINE_403',
                'mode=404'        => 'ERROR_VIEWONLINE_404',
                'mode=500'        => 'ERROR_VIEWONLINE_500',
            );

  
Hast Du nun benutzerdefinierte Errorpages installiert oder nicht?

Aber, möglicherweise wirft Deine error.php nur 404 aus, zB. wegen

Code: Alles auswählen

     if (strpos($row['session_page'], 'mode=400') !== false)
     {
         $location = $user->lang['ERROR_VIEWONLINE_400'];
         $location_url = append_sid("{$phpbb_root_path}error.$phpEx");
     } 
Daher und deswegen merkte ich schon vorher an:
BNa hat geschrieben:Eine Anpassung der Error Seiten könnte noch hilfreich sein

Also statt

Code: Alles auswählen

append_sid("{$phpbb_root_path}error.$phpEx"); 
etwas differenzierter

Code: Alles auswählen

append_sid("{$phpbb_root_path}error400.$phpEx"); 

Re: Error Pages Viewonline

Verfasst: 15.02.2012 19:41
von Malte
Ja ich nutze den oben angegebenen MOD. :D Meinst du mit er differenzierteren Herangehensweise, dass ich die von dir unten angegebene Änderung überall ändern muss und dann die komplette error.php aufteilen muss in error400.php etc. oder verstehe ich da was falsch?

Re: Error Pages Viewonline

Verfasst: 15.02.2012 21:59
von BNa
Na dann: Back to the roots.

Öffne

viewonline.php

Finde

Code: Alles auswählen

        $template->assign_block_vars('user_row', array(  
Davor füge ein

Code: Alles auswählen

echo $row['session_page']; 
Dann das alte Prozedere
2 User* / 2 Browser
*Einer auf der viewonline und der andere eingeloggt auf der Errorseite + F5 auf der viewonline
Poste das Ergebnis einer beliebigen "stoker'schen customized error page" (40*/500er-Seite)

Re: Error Pages Viewonline

Verfasst: 16.02.2012 16:30
von Malte
Höchst eigenartig. Ich erhalte folgendes:
viewonline.php?sg=1error.php?mode=404index.php

Das heißt, der denkt, er wäre auf der Error 404 Seite, obwohl ich eine mit 403 Error besucht habe.

Re: Error Pages Viewonline

Verfasst: 16.02.2012 19:11
von BNa
Malte hat geschrieben:ich habe versucht, den Err0r Pages Mod von Stoker (http://www.phpbb3bbcodes.com/viewtopic.php?f=43&t=1212) installiert.
Habe gerade jetzt erst das Wort versucht gesehen. Blöd, wenn der Stoker Mod das nicht korrekt übermittelt oder es nicht richtig ankommt, kommen wir hier nicht weiter. Lösungen setzen einen funktionierenden Basic Code voraus, sonst kann man sich die Hilfe sparen.

Re: Error Pages Viewonline

Verfasst: 16.02.2012 19:19
von Malte
Ja, den Satz habe ich nicht unbedingt einwandfrei formuliert, abends schaltet, das Gehirn bei mir ein wenig ab. :D Auf jeden Fall, habe ich den MOD schon seit Monaten drin. Nur jetzt habe ich mich mit der Online-Liste befasst. Ich frage mal demnächst bei Stoker nach.