advertise laitec sharif univercity
دانلود پروژه فروشنده دوره گرد با الگوریتم ازدحام ذرات PSO در #C

دانلود پروژه فروشنده دوره گرد با الگوریتم ازدحام ذرات PSO در #C

10000 تومان
دانلود برنامه آزمون تستی در مالتی مدیا بیلدر MMb

دانلود برنامه آزمون تستی در مالتی مدیا بیلدر MMb

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

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

10000 تومان
دانلود PDF مجموعه 300 نکته جالب برنامه نویسی در سی شارپ #C

دانلود PDF مجموعه 300 نکته جالب برنامه نویسی در سی شارپ #C

10000 تومان
سورس پروژه پایانی وب سایت و نرم افزار کلینیک در ASP.net

سورس پروژه پایانی وب سایت و نرم افزار کلینیک در ASP.net

48000 تومان

مدیریت خطا در 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
کد امنیتی :


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

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

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