advertise laitec sharif univercity تبلیغات در سایت سورس کد تبلیغات در سایت سورس کد
دانلود پروژه مدیریت کتابخانه با سی شارپ و SQL سرور

دانلود پروژه مدیریت کتابخانه با سی شارپ و SQL سرور

3000 تومان
دانلود سورس پروژه فروشگاه کیف با asp.net و sql express

دانلود سورس پروژه فروشگاه کیف با asp.net و sql express

3000 تومان
دانلود پروژه آموزش چندرسانه ای با دایرکتور Director

دانلود پروژه آموزش چندرسانه ای با دایرکتور Director

3000 تومان
دانلود پروژه کامل مهندسی نرم افزار ، شرکت نرم افزاری

دانلود پروژه کامل مهندسی نرم افزار ، شرکت نرم افزاری

3000 تومان
دانلود پروژه وب سایت هتل با HTML و ASP.NET

دانلود پروژه وب سایت هتل با HTML و ASP.NET

4900 تومان

مدیریت خطا در PHP پی اچ پی

مدیریت خطا به طور پیش فرض در PHP :یک پیغام خطا با نام فایل، شماره خط و یک پیام توصیف خطا به مرورگر ارسال می شود.متد های مختلف مدیریت خطا عبارتنداز: عبارات ساده تابع die، خطاهای سفارشی و باعث خطا، گزارش خطا
مدیریت خطا در PHP پی اچ پی

مدیریت خطا در PHP

مدیریت خطا به طور پیش فرض در PHP بسیار ساده است. یک پیغام خطا با نام فایل، شماره خط و یک پیام توصیف خطا به مرورگر ارسال می شود.

 

رسیدگی به خطاها در PHP

هنگام ایجاد اسکریپت ها و برنامه های تحت وب، مدیریت خطا، یک بخش مهم است. اگر کد شما فاقد کد چک کردن خطا باشد، برنامه شما ممکن است بسیار غیر حرفه ای به نظر بیاید و ریسک های امنیتی در برنامه هایتان وجود خواهد داشت.

در این پست برخی از رایج ترین متدهای چک کردن و مدیریت خطاها در PHP را خواهید دید.

ما متد های مختلف مدیریت خطا را نشان خواهیم داد:

► عبارات ساده "die()"

► خطاهای سفارشی و باعث خطا

► گزارش خطا

 

مدیریت خطای عمومی: استفاده از تابع die()

اولین مثال، یک اسکریپت ساده است که یک فایل متنی را باز میکند. ( در مثالها به جای() از علامتهای <> استفاده کنید)

 

(?php
$file=fopen("welcome.txt","r");
?)

 

اگر فایل وجود نداشته باشد ممکن است خطایی مانند این را دریافت کنید:

Warning: fopen(welcome.txt) [function.fopen]: failed to open stream:
No such file or directory in C:webfolder est.php on line 2

 

برای جلوگیری از دریافت چنین پیام هایی توسط کاربر،باید قبل از اینکه بخواهیم به فایل دسترسی داشته باشیم، از وجود آن مطمئن شویم.

(?php
if(!file_exists("welcome.txt")) {
  die("File not found");
} else {
  $file=fopen("welcome.txt","r");
}
?)

 

حال اگر فایل وجود نداشته باشد، پیغامی مثل این صادر خواهد شد:

File not found

 

کد بالا خیلی کارآمدتر از کد قبلی است زیرا بعد از خطا، از یک مکانیسم ساده مدیریت خطا برای جلوگیری از اسکریپت استفاده میکند.

با این حال، به سادگی متوقف کردن اسکریپت همیشه روش مناسبی برای رفع خطا نیست. بیایید نگاهی به دیگر توابع PHP برای مدیریت خطا بیندازیم.

 

ایجاد یک مدیریت خطای سفارشی

ایجاد یک کنترل خطای سفارشی بسیار ساده است. به سادگی می توان یک تابع خاص را تعریف کرد که هنگام رخ دادن خطا در PHP فراخوانی شود.

این تابع باید قادر به مدیریت حداقل دو پارامتر (سطح خطا و پیغام خطا) باشد اما می تواند تا 5 پارامتر را قبول کند: (اختیاری: فایل، شماره خط، و مفهوم خطا)

 

سینتکس تابع مدیریت خطا

error_function(error_level,error_message,
error_file,error_line,error_context)

 

پارامترهای این سینتکس و توضیحات هر کدام 

► error_level : این پارامتر، الزامی است، سطح گزارش خطای تعیین شده توسط کاربر را مشخص میکند و باید یک مقدار عددی باشد.

► error_message : پارامتر الزامی، پیغام خطایی برای خطای تعیین شده توسط کاربر را مشخص می کند.

► error_file : پارامتر اختیاری که نام فایلی را که خطا در آن رخ داده است، مشخص میکند.

► error_line : اختیاری و شماره خطی را که خطا در آن رخ داده است، تعیین می کند.

► error_context : پارامتر اختیاری که آرایه در حال استفاده شامل متغیرها و تمام مقادیر آنها را مشخص میکند.

 

سطوح گزارش خطا

این سطوح گزارش خطا، انواع مختلف خطای تعیین شده توسط کاربر هستند که می توان از آنها استفاده کرد:

در زیر تابعی برای مدیریت خطا را می بینید:

function customError($errno, $errstr) {
  echo "(b)Error:(/b) [$errno] $errstr(br)";
  echo "Ending Script";
  die();
}

 

کد بالا یک تابع مدیریت خطای ساده است و هنگامیکه فعال می شود، سطح خطا و پیغام خطا را دریافت میکند. سپس سطح خطا و پیغام خطا را در خروجی نشان می دهد و اسکریپت را به پایان می رساند.

حال که یک تابع مدیریت خطا داریم، باید تصمیم بگیریم که چه موقع آن را فعال کنیم.

 

تنظیم هندلر خطا

مدیریت خطای پیش فرض در PHP، در هندلر خطا ساخته شده است. میتوان مدیریت کننده خطا را برای اعمال روی برخی اشتباهات و خطاهای دیگر تغییر داد و در اینصورت اسکریپت می تواند خطاهای مختلف را به روش های مختلف اداره کند:

set_error_handler("customError");

 

از آنجا که ما می خواهیم تابع سفارشی ما تمام خطاها را مدیریت کند، تابع set_error_handler() تنها به یک پارامتر نیاز دارد، پارامتر دوم می تواند برای تعیین سطح خطا اضافه شود.

 

تست مدیریت کننده خطا برای نمایش متغیری در خروجی که وجود ندارد:

(?php
//error handler function
function customError($errno, $errstr) {
  echo "Error: [$errno] $errstr";
}

//set error handler
set_error_handler("customError");

//trigger error
echo($test);
?)
خروجی این کد شبیه زیر خواهد بود :
Error: [8] Undefined variable: test

 

 

 



1
نظرات
  • user avatar سیاوش:
    ۰۱:۱۷:۴۷ __ ۱۳۹۵/۰۲/۰۲

    دوستان ممنون میشم واسه رفع این ارور کمکم کنیدتو جوملا 3 میخوام عکس اپلود کنم ارور لاین 531 که میشه این ارور رو میده<?php if(isset($this->images)) foreach($this->images as $img) { ?>

نظر خود را ارسال کنید



نام:
ایمیل:
دیدگاه:
captcha
کد امنیتی :


advertise
آموزش تنظیم هندلر خطا در پی اچ پیکاربرد تابع die در پی اچ پی چیست؟آموزش رفع error در phpچگونگی ایجاد یک مدیریت خطای سفارشی در phpنحوه مدیریت خطاهای موجود در پی اچ پیآموزش Error handling in phpaچگونگی مدیریت و رفع خطاها در پی اچ پیمعرفی روش های Error handling با phpسینتکس تابع مدیریت خطا برای کدهای phpرسیدگی به خطاها در پی اچ پیمدیریت خطا به طور پیش فرض در PHP لیست برچسب ها
تمامی حقوق این سایت اعم از محتوی ، تصاویر ، قالب و ... متعلق به گروه مهندسی وب سایت سورس کد می باشد.
SourceCodes.ir ، افقی روشن برای برنامه نویسان ، از مبتدی تا حرفه ای

سفارش پروژه در سورس کد

پیشنهادات ویژه سورس کد

پکیج ویژه پروژه پایانی رشته کامپیوتر دانلود مجموعه 70 پروژه کاربردی سی شارپ وب سایت فروشگاه با php