انجمن های کدباکس
https://codebox.ir/forum/

ارسال خطاهای php به ایمیل
https://codebox.ir/forum/viewtopic.php?f=68&t=491
صفحه 1 از 1

نويسنده:  maedeh [ شنبه 10 دسامبر 16, 9:54 am ]
موضوع پست:  ارسال خطاهای php به ایمیل

سلام.
در php مبحثی داریم با عنوان ارور هندلر که میشه مدیریت خطاها رو در پی اچ پی بر روی دوش اون گذاشت و مقرر کرد که خطاها رو توسط ایمیل به وبمستر مخابره کنه.
لطفا کسانی که سر رشته دارند در این خصوص توضیح بدن.
ممنون.

نويسنده:  Hoseyn [ شنبه 10 دسامبر 16, 10:07 am ]
موضوع پست:  Re: ارسال خطاهای php به ایمیل

maedeh نوشته است:
سلام.
در php مبحثی داریم با عنوان ارور هندلر که میشه مدیریت خطاها رو در پی اچ پی بر روی دوش اون گذاشت و مقرر کرد که خطاها رو توسط ایمیل به وبمستر مخابره کنه.
لطفا کسانی که سر رشته دارند در این خصوص توضیح بدن.
ممنون.


بگذارید با ذکر مثال خدمتتون توضیح بدم
کد:
<?php
//تابع کاستوم ارور شامل شماره و متن ارور
function customError($errno, $errstr) {
  echo "<b>Error:</b> [$errno] $errstr<br>";
  echo "Webmaster has been notified";
  error_log("Error: [$errno] $errstr",1,
  "someone@example.com","From: webmaster@example.com");
}

//تنظیم هندلر به تابع کاستوم ارور
set_error_handler("customError",E_USER_WARNING);

//ارور در صورتی که مقدار اشتباه توسط کلاینت وارد شده رخ می دهد
$test=2;
if ($test>=1) {
  trigger_error("Value must be 1 or below",E_USER_WARNING);
}
?>

در مثال بالا. ابتدا یک تابع customerror داریم که شامل شماره ی خط و متن ارور هست که تنظیم شده این دو مقدار چاپ بشه و پیغامی مبنی بر مطلع شدن وبمستر هم چاپ بشه.
سپس یک تابع دیگر داریم به نام error_log که مقادیری داره که اولین مقدار همیشه شامل پیغام هست و دومین مقدار که عددی هست و در اینجا 1 قرار گرفته یعنی مقدار بعدی به عنوان ایمیل مقصد قرار بگیره و با ایمیل ارسال بشه. مقدار بعدی همانطور که گفتم ایمیل مقصد هست و مقدار بعدی هدر که آپشنال هست.
بعد باید به اسکریپتمون بگیم که ارور هندلر که بار مدیریت خطاها رو به دور میکشه همون کاستوم اروری باشه که تعریف کردیم و سطحی از ارور ها که   E_USER_WARNING هست رو مخابره کنه. این سطح ارور هایی هست که توسط کاربر ایجاد میشه
حالا برای امتحان یک متغیر تست ایجاد میکنیم و مقدارش رو 2 قرار میدیم
و میگیم که اگر متغیر تست بزرگتر مساوی 1 بود ماشه ی ارور کشیده بشه ! و پیغامی نمایش داده بشه با سطح پیغام.

نويسنده:  Hoseyn [ شنبه 10 دسامبر 16, 11:02 am ]
موضوع پست:  Re: ارسال خطاهای php به ایمیل

البته اگر روی لوکال دارید تست میکنید ممکنه به دلیل تنظیم نبودن smtp ایمیل ارسال نشه. لازم دونستم بگم که بهتره روی هاست تست کنید.

صفحه 1 از 1 ساعت سایت بر اساسUTC تنظیم شده است
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/