انجمن عمومی گسترش فناوری آگو
ساخت صفحه مدیریت خطای همه کاره - نسخه‌ی قابل چاپ

+- انجمن عمومی گسترش فناوری آگو (http://forums.ago.ir)
+-- انجمن: انجمن های عمومی گسترش فناوری آگو (/forumdisplay.php?fid=1)
+--- انجمن: برنامه نویسی (/forumdisplay.php?fid=13)
+--- موضوع: ساخت صفحه مدیریت خطای همه کاره (/showthread.php?tid=2349)



ساخت صفحه مدیریت خطای همه کاره - agotd - 02-10-2014 03:23 PM

در این پست قصد دارم برای شما نحوه ساخت صفحه مدیریت خطای همه کاره رو به وسیله هدرها بهتون آموزش بدم. صفحه خطاهایی مثل خطای ۴۰۴ و …
یکی از مزیتهای این روش اینه که به وسیله یک صفحه میتونیم تمام خطاهای به وجود اومده رو مدیریت کنیم.

برای اینکار ابتدا در فایل htaccess کدهای زیر رو قرار میدیم.

کد php:
ErrorDocument 400 /errors.php
ErrorDocument 403 
/errors.php
ErrorDocument 404 
/errors.php
ErrorDocument 405 
/errors.php
ErrorDocument 408 
/errors.php
ErrorDocument 500 
/errors.php
ErrorDocument 502 
/errors.php
ErrorDocument 504 
/errors.php 

حتما میدونید که دستور ErrorDocument هنگامی که یک خطا اتفاق میافته صفحه رو به error.php انتقال میده. مثلا هنگامی که یک صفحه پیدا نشه به جای خطای پیش فرض Not Found 404 میتونیم یک صفحه خطای دیگه رو نمایش بدیم.

به هر حال وقتی کد بالا رو در فایل htaccess وارد کردید یک فایل با نام errors.php بسازید و کد زیر رو داخلش قرار بدید .

کد php:
$status $_SERVER['REDIRECT_STATUS'];
$codes = array(
       
400 => array('400 Bad Request''The request cannot be fulfilled due to bad syntax.'),
       
403 => array('403 Forbidden''The server has refused to fulfil your request.'),
       
404 => array('404 Not Found''The page you requested was not found on this server.'),
       
405 => array('405 Method Not Allowed''The method specified in the request 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 while trying to carry out 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 HTTP status code.';
}

echo 
'<h1>Hold up! '.$title.' detected</h1>
<p>'
.$message.'</p>'

فکر میکنم همه چیز واضح و روشنه ولی بازم اگر سوالی دارید در قسمت نظرات بپرسید.

موفق باشید