Error Pages Viewonline

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Error Pages Viewonline

Beitrag 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"); 
Malte

Re: Error Pages Viewonline

Beitrag 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?
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Error Pages Viewonline

Beitrag 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.
Zuletzt geändert von BNa am 17.02.2012 00:09, insgesamt 1-mal geändert.
Malte

Re: Error Pages Viewonline

Beitrag 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.
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Error Pages Viewonline

Beitrag 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"); 
Zuletzt geändert von BNa am 17.02.2012 00:07, insgesamt 1-mal geändert.
Malte

Re: Error Pages Viewonline

Beitrag 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?
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Error Pages Viewonline

Beitrag 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)
Zuletzt geändert von BNa am 17.02.2012 00:06, insgesamt 1-mal geändert.
Malte

Re: Error Pages Viewonline

Beitrag 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.
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Error Pages Viewonline

Beitrag 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.
Zuletzt geändert von BNa am 17.02.2012 00:05, insgesamt 1-mal geändert.
Malte

Re: Error Pages Viewonline

Beitrag 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.
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“