Seite 3 von 4

Re: Error Pages Viewonline

Verfasst: 17.02.2012 00:28
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

Re: Error Pages Viewonline

Verfasst: 17.02.2012 15:03
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...

Re: Error Pages Viewonline

Verfasst: 19.02.2012 01:51
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

Re: Error Pages Viewonline

Verfasst: 19.02.2012 10:48
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?

Re: Error Pages Viewonline

Verfasst: 19.02.2012 14:52
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.

Re: Error Pages Viewonline

Verfasst: 19.02.2012 15:03
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".

Re: Error Pages Viewonline

Verfasst: 19.02.2012 15:54
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?

Re: Error Pages Viewonline

Verfasst: 19.02.2012 15:57
von Malte
Ja, das habe ich gemacht, da zeigt er immer die korrekt Zahl je nachdem was hinter mode= steht an.

Re: Error Pages Viewonline

Verfasst: 19.02.2012 23:56
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?

Re: Error Pages Viewonline

Verfasst: 20.02.2012 12:20
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: