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 »

Deine error.php sollte diesen Grundaufbau haben

Code: Alles auswählen

<?php
/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

// nothing

?>
oder in eine Board Datei includiert sein, sonst wird sie in session_pages nicht berücksichtigt.
Aber ich denke, das ist eh klar.

Hier kannst Du es testen

Browser 1 / Gast

http://www.4seven.de/forum/6test/viewonline.php

-----------------------------------

Browser 2 / User test

Diese Links als test aufrufen (Passwort: testuser)

http://www.4seven.de/forum/6test/error.php?mode=400
http://www.4seven.de/forum/6test/error.php?mode=401
http://www.4seven.de/forum/6test/error.php?mode=403
http://www.4seven.de/forum/6test/error.php?mode=404
http://www.4seven.de/forum/6test/error.php?mode=500

und beim Gast die Seite refreshen
Malte

Re: Error Pages Viewonline

Beitrag von Malte »

Also ich habe als error.php bisher nur die Datei im Forum Root mit dem normalen Grundaufbau:

Code: Alles auswählen

<?php
/** 
*
* @package phpBB3
* @version $Id: error.php,v 1.0 2011/05/31 15:49:44 stoker Exp $
* @copyright (c) 2005 phpBB Group 
* @license http://opensource.org/licenses/gpl-license.php GNU Public License 
*
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('mods/error');

// Get the avatar
if (!function_exists('get_user_avatar'))
{
   include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
}

$base_url = generate_board_url() . '/';
$ip = $_SERVER['REMOTE_ADDR'];
$hostaddress = gethostbyaddr($ip);
$browser = $_SERVER['HTTP_USER_AGENT'];
$mode = request_var('mode', '');
switch ($mode)
{
	case '400':
		page_header($user->lang['ERROR_TITLE400']);
		$template->set_filenames(array(
			'body' => 'error/400_body.html')
		);
	break;
	case '401':
		page_header($user->lang['ERROR_TITLE401']);
		$template->set_filenames(array(
			'body' => 'error/401_body.html')
		);
	break;
	case '403':
		page_header($user->lang['ERROR_TITLE403']);
		$template->set_filenames(array(
			'body' => 'error/403_body.html')
		);
	break;
	case '404':
		page_header($user->lang['ERROR_TITLE404']);
		$template->set_filenames(array(
			'body' => 'error/404_body.html')
		);
	break;
	case '500':
		page_header($user->lang['ERROR_TITLE500']);
		$template->set_filenames(array(
			'body' => 'error/500_body.html')
		);
	break;
}

$template->assign_vars(array(
	'S_ERROR_PAGE'		=> true,
	'U_FORUM_BASE'		=> $base_url,
	'USER_AVATAR'		=> get_user_avatar($user->data['user_avatar'], $user->data['user_avatar_type'], $user->data['user_avatar_width'], $user->data['user_avatar_height']),
	'USERNAME'			=> get_username_string('full', $user->data['user_id'], $user->data['username'], $user->data['user_colour']),
	'USER_IP'			=> $ip,
	'USER_HOST'			=> $hostaddress,
	'USER_BROWSER'		=> $browser,
));

page_footer();

?>
Eine Includes-Datei habe ich bisher nicht, die selbigem Inhalt gleicht. Den Inhalt, den du da oben geschrieben hast, enthält die Datei jedoch schon. Das ist bereits alles oben enthalten...
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Error Pages Viewonline

Beitrag von BNa »

Der funktionierende Testaufbau aus meinem letzten Beitrag sieht so aus

Öffne

viewonline.php

Finde

Code: Alles auswählen

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

Code: Alles auswählen

$user->lang['ERROR_VIEWONLINE_400'] = 'Is on 400 Error Page';    
$user->lang['ERROR_VIEWONLINE_401'] = 'Is on 401 Error Page';    
$user->lang['ERROR_VIEWONLINE_403'] = 'Is on 403 Error Page';
$user->lang['ERROR_VIEWONLINE_404'] = 'Is on 404 Error Page';
$user->lang['ERROR_VIEWONLINE_500'] = 'Is on 500 Error Page';

         // 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", 'mode=400');
         }

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

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


Erstelle error.php mit folgendem Inhalt

Code: Alles auswählen

<?php

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

  // Easy Error Page 1
  $mode = request_var('mode', '', true);

    // Header
    page_header('This is a ' . $mode . ' Error');

    // Error Mode
    $template->assign_var('ERROR', $mode);    
    
    // Template File
    $template->set_filenames(array(
        'body' => 'error.html')
    );

    // Footer
    page_footer();

?>
Erstelle styles/prosilver/template/error.html mit folgendem Inhalt

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->

<div class="navbar" style="background-color:#F6F4D0;">
<div class="inner"><span class="corners-top"><span></span></span>
<h3 style="position:relative;top:-10px;">Error Page</h3>
<h4>This is a {ERROR} Error</h4>
<span class="corners-bottom"><span></span></span></div>
</div>

<!-- INCLUDE overall_footer.html --> 
und check mal die Viewonline mit User und Gast und zwei Browsern
Malte

Re: Error Pages Viewonline

Beitrag von Malte »

Hallo,

soll ich das nur Testweise so einbauen oder soll das dann am Ende die Lösung sein? Falls es letzteres ist würde ich doch die ganze Error..php "verhunzen", da die ja bekanntlich aus fünf verschiedenen Error besteht und nicht nur aus dem einen. Die 5 Error, die ich jetzt in der Viewonline verbaue kann ich doch aber nie im Leben erreichen, weil wir nach deiner Anleitung mit der error.php doch gar keine Unterscheidung mehr zwischen den 5 Error haben?
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Error Pages Viewonline

Beitrag von BNa »

Malte hat geschrieben: Die 5 Error, die ich jetzt in der Viewonline verbaue kann ich doch aber nie im Leben erreichen, weil wir nach deiner Anleitung mit der error.php doch gar keine Unterscheidung mehr zwischen den 5 Error haben?
Meine Datei ist einfacher, performanter und wenn Du Code lesen könntest, würdest Du sehen, das die Datei genau dadurch so genial ist, weil sie aus den wenige Zeilen Code 5 verschiedenen Fehlerseiten generiert. Es ist eine Versuchsaufbau, um herauszufinden, ob es bei Dir funktioniert. Die paar anderen Variablen aus der Stoker php lassen sich schnell einpflegen. Es geht hier um Ursachenforschung. Und wenn Du aufmerksam wärest, hättest Du das hier wahrgenommen und gesehen, das es funktioniert.
Der funktionierende Testaufbau aus meinem letzten Beitrag sieht so aus
Und vor allem den erwähnten letzten Beitrag, wo ich genau demonstriere, das es so ist.
BNa hat geschrieben:Hier kannst Du es testen

Browser 1 / Gast

http://www.4seven.de/forum/6test/viewonline.php

-----------------------------------

Browser 2 / User test

Diese Links als test aufrufen (Passwort: testuser)

http://www.4seven.de/forum/6test/error.php?mode=400
http://www.4seven.de/forum/6test/error.php?mode=401
http://www.4seven.de/forum/6test/error.php?mode=403
http://www.4seven.de/forum/6test/error.php?mode=404
http://www.4seven.de/forum/6test/error.php?mode=500

und beim Gast die Seite refreshen
Es möchte Dir niemand etwas wegnehmen, es soll eine Lösung erarbeitet werden.
Malte

Re: Error Pages Viewonline

Beitrag von Malte »

Ok, dann probiere wir es. :D
Anscheinend ist auf meinem Server da irgend etwas eigenartiges, was unser Vorhaben blockiert.
Es gibt nämlich wieder auch beim Aufruf von 403 oder 401 Error immer ein "Is on 404 Error Page".
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Error Pages Viewonline

Beitrag von BNa »

Dann generiert Dein Webspace eigene custom error pages, das heisst, es müsste in deinem Web root ein Verzeichnis namens error oder ähnlich existieren. Wenn nicht kannst Du diese custom error pages warscheinlich in Deiner Webverwaltung abstellen. Hast Du Die Versuchs error.php auch mal in der folgenden Syntax aufgerufen? http://www.deinwebspace.de/forum/error.php?mode=400, also ohne einen echten *** error zu provozieren?
Malte

Re: Error Pages Viewonline

Beitrag von Malte »

Ja, das habe ich gemacht, da zeigt er immer die korrekt Zahl je nachdem was hinter mode= steht an.
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: Error Pages Viewonline

Beitrag von BNa »

BNa hat geschrieben:Hast Du Die Versuchs error.php auch mal in der folgenden Syntax aufgerufen? http://www.deinwebspace.de/forum/error.php?mode=400, also ohne einen echten *** error zu provozieren?
Malte hat geschrieben:Ja, das habe ich gemacht, da zeigt er immer die korrekt Zahl je nachdem was hinter mode= steht an.
Zeigt der Originalcode von Stoker bei dieser Syntax auch das Richtige an?
Malte

Re: Error Pages Viewonline

Beitrag von Malte »

Ja, die Zahl war auch bei Stokers MOD korrekt. Ich habe langsam das Gefühl, der große Fehler liegt an meinem Server. :cry:
Antworten

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