2015-07-28 1 views
1

Je fais une page d'erreur PHP et je me demandais s'il y aurait quelque façon que je pourrais obtenir le code d'erreur qui a entraîné l'erreur et l'afficher. Ensuite, je pouvais utiliser le même mais ont afficher PHP un code d'erreur différent en fonction de ce erreur est survenue. J'utilise Apache 2.4 avec PHP 5.6.10. Toute aide serait grandement appréciée.Obtenir le code d'erreur Apache et l'afficher en PHP

Répondre

0

point toutes les pages d'erreur à un endroit dans .htaccess

ErrorDocument 400 /error.php 
ErrorDocument 401 /error.php 
ErrorDocument 403 /error.php 
ErrorDocument 404 /error.php 
ErrorDocument 500 /error.php 

Puis, en error.php vous pouvez faire comme ceci:

<?php 
$status = $_SERVER['REDIRECT_STATUS']; 
$codes = array(
     403 => array('403 Forbidden', 'The server has refused to fulfill your request.'), 
     404 => array('404 Not Found', 'The document/file requested was not found on this server.'), 
     405 => array('405 Method Not Allowed', 'The method specified in the Request-Line is not allowed for the specified resource.'), 
     408 => array('408 Request Timeout', 'Your browser failed to send a request in the time allowed by the server.'), 
     500 => array('500 Internal Server Error', 'The request was unsuccessful due to an unexpected condition encountered by the server.'), 
     502 => array('502 Bad Gateway', 'The server received an invalid response from the upstream server while trying to fulfill the request.'), 
     504 => array('504 Gateway Timeout', 'The upstream server failed to send a request in the time allowed by the server.'), 
); 

$title = $codes[$status][0]; 
$message = $codes[$status][1]; 
if ($title == false || strlen($status) != 3) { 
     $message = 'Please supply a valid status code.'; 
} 
// Insert headers here 
echo '<h1>'.$title.'</h1> 
<p>'.$message.'</p>'; 
// Insert footer here 

De https://css-tricks.com/snippets/php/error-page-to-handle-all-errors/

-

Si vous souhaitez un message d'erreur personnalisé par ex. Erreur d'analyse, vous pouvez ajouter cela au début de votre fichier PHP:

<?php 
set_error_handler('errorHandler'); 
function errorHandler($code, $msg, $file, $line) { 

    header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error', true, 500); 
    echo "<h1>Unexpected error occurred</h1><p>The request was unsuccessful due to an unexpected error.</p>"; 
    // PHP error message: 
    echo "<p>$msg</p>"; 
    die(); 
} 
+0

Merci! Ça a marché! – Drake