Seite 1 von 2

404 Error Page erstellen

Verfasst: 27.08.2011 14:44
von Tobias21
Hallo,

ich wollte auf meiner HP eine 404 Error Seite erstellen. Sie soll den selben Stil wie das restliche Forum haben.

Was ich gemacht habe:

htaccess modifiziert:

Code: Alles auswählen

ErrorDocument 404 /error/error_404.php
error_404.php Datei erstellt:

Code: Alles auswählen

    <?php
    define('IN_PHPBB', true);
    define('ROOT_PATH', './../');
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include(ROOT_PATH . 'common.' . $phpEx);


    page_header('404 Error - Not Found', false);

    $template->set_filenames(array(
        'body' => 'styles/Android/template/error/404_error.html'
    ));

    page_footer(false);

    ?>
error_404.html Datei erstellt:

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->

<ul class="linklist navlinks">
    <li><a href="{U_HOME}">Home</a></li>
</ul>

<div id="main">
    <h2 class="imgrep error404">Error 404: Not Found</h2>
    <h3>The Page you have requested was destroyed.</h3>
    <p>We&rsquo;re sorry, but the page you have requested was not found.</p>
    
</div>

<!-- INCLUDE overall_footer.html -->  

Das ist mein Forum: http://tobias.hilbig-ffb.de/
Da ist der 404 Error: http://tobias.hilbig-ffb.de/error/error_404.php


Und das ist der Fehler:

Code: Alles auswählen

Warning: Cannot modify header information - headers already sent by (output started at /home/web327/hart99/ftproot/tobias.hilbig-ffb.de/error/error_404.php:1) in /home/web327/hart99/ftproot/tobias.hilbig-ffb.de/common.php on line 58

Hab jetzt schon mehrere Tuts durchgeleses, aber es klapptr einfach nicht... Was ist falsch?

Re: 404 Error Page erstellen

Verfasst: 27.08.2011 14:49
von Mahony
Hallo
Siehe dazu KB:headers_already_sent

Grüße: Mahony

Re: 404 Error Page erstellen

Verfasst: 27.08.2011 14:50
von Charlie_M

Re: 404 Error Page erstellen

Verfasst: 27.08.2011 14:59
von Tobias21
So danke für die superschnellen Antworten, der letzte link ist ja schön und gut, aber ich will hald noch mehr seiten erstellen(nicht nur 404/Error), deshalb hilft der nicht wirklich...
Die Ursache dieses Fehlers liegt darin, daß versucht wird, die Header-Informationen zu bearbeiten, nachdem bereits normale Ausgabe erfolgt ist. Diese Header-Informationen können z.B. Cookies, Weiterleitungen oder Cache-Unterdrückungen sein. Die HTML-Ausgabe muss nicht immer gewollt sein, selbst sogenannter Whitespace (leere Zeilen, Tabulatoren, Leerzeichen) kann die Ursache sein.

Glücklicherweise liefert diese Fehlermeldung bereits alle Informationen, die zum Auffinden des Fehlerhaften Codes nötig sind, mit:

Datei mit Header-Informationen: In dieser Datei befindet sich der Code zum Modifizieren der Header-Informationen (in dieser Zeile). In der Regel handelt es sich dabei um header() oder setcookie() Befehle.
Datei mit HTML-Ausgabe: In dieser Datei befindet sich die HTML-Ausgabe (in dieser Zeile ). Falls dies die letzte Zeile in der Datei ist, befindet sich dort entweder eine ungewollte Leerzeile hinter '?>' (einfach löschen) oder die Datei wurde im falschen Modus hochgeladen (siehe Binär != ASCII Was man bei dem Upload des Forums beachten sollte). Andernfalls solltest du den Code von dieser Stelle hinter die letzte header() oder setcookie() Anweisung verschieben.


setcookie() rufe ich nicht auf,
HTML ist nicht in der Datei,
Leerzeichen hinter ?> ist keines,
Datei wurde im ASCI Modus upgeloadet,
header() wurde nicht aufgerufen, aber

Code: Alles auswählen

page_header('404 Error - Not Found', false);
vor diesem Befehl wurden nur

Code: Alles auswählen

    define('IN_PHPBB', true);
    define('ROOT_PATH', './../');
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include(ROOT_PATH . 'common.' . $phpEx);
1 Variable definiert und define('IN_PHPBB', true);, und die common Datei includet...

Also dass kanns nicht sein...

Und der Error sagt in Zeile 1?! Da steht nur "<?php"

Re: 404 Error Page erstellen

Verfasst: 27.08.2011 15:03
von Charlie_M
Wir haben den Mod für die Errors 400-405 sowie 500.
Kann man total einfach erweitern und entsprechend eine Meldung ausgeben.
Viel. habe ich den Einsatzzweck bei dir falsch Verstanden :oops:

Re: 404 Error Page erstellen

Verfasst: 27.08.2011 15:05
von Elsensee
Und vor dem <?php sind (zumindest in der Code-Box hier im Forum) vier Whitespaces (Leerzeichen) bzw. ein Tab und das wird bereits als Ausgabe gezählt. Steht auch auf der Seite. :wink:

Re: 404 Error Page erstellen

Verfasst: 27.08.2011 15:11
von Tobias21
Ok den Mod hab ich runtergeladen, er löst das Problem mit den Error Pages, aber ich will einfach weitere Seiten zum Forum hinzufügen können(Seite für den Status meines Minecraft Servers, Serverkarte per iFrame einbinden usw) und deswegen einfach wissen warum es nicht geht. Die 4 Leerzeichen habe ich gelöscht, selber error...

Code: Alles auswählen

<?php
define('IN_PHPBB', true);
define('ROOT_PATH', './../');
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include(ROOT_PATH . 'common.' . $phpEx);
// since we?re only using one language (en), I?ll just hardcode this...
// void page_header ([ $page_title = ''], [ $display_online_list = true])
page_header('404 Error - Not Found', false);
// this template file will be located in the custom templates directory
$template->set_filenames(array(
        'body' => 'styles/Android/template/error/404_error.html'
        ));
page_footer(false);

?>

Re: 404 Error Page erstellen

Verfasst: 27.08.2011 15:15
von Mahony
Hallo
Lies mal die Fehlermeldung: error_404.php:1 - da befindet sich noch ein Zeichen am Anfang der Datei (vor <?php ).


Grüße: Mahony

Re: 404 Error Page erstellen

Verfasst: 27.08.2011 15:19
von Tobias21
Aaalso ich hab den Mod erfolgreich installiert: http://tobias.hilbig-ffb.de/seitediesnichtgibt

Ich probiere jetzt eigene Seiten auf basis des Mods zu erstellen.

Danke für die Hilfe!

Soo noch eine Frage, die Error.php Datei ruft "trigger_error('xyz')" auf, wo ist die Funktion definiert?

Re: 404 Error Page erstellen

Verfasst: 27.08.2011 15:51
von Elsensee
trigger_error() ist in php selbst definiert. Siehe: http://de.php.net/manual/de/function.trigger-error.php :)

Auf deine nächste Frage, die vermutlich "Aber warum wird denn eine phpBB-Seite angezeigt?" heißen mag:
Es wurde die Funktion "set_error_handler()" benutzt. (In der common.php)

Code: Alles auswählen

// Set PHP error handler to ours
set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');