পিএইচপি এরর হ্যান্ডলার
|
যখন পিএইচপি স্ক্রিপ্ট লিখবেন বা কোন ওয়েব এপ্লিকেশন তৈরী করবেন তখন
error handling এরএকটি গুরত্বপূর্ন ভুমিকা থাকে।যদি এরর (ভুল) চেকিং কোডে
কোন ঘাটতি থাকে তাহলে আপনার প্রোগ্রামটি আর বেশি ভাল হবেনা এবং
নিরাপত্তাজনিত ঝুকি থাকবে। এই টিউটোরিয়ালে এরর চেকিং এর কিছু প্রচলিত পদ্ধতি নিয়ে আলোচনা করা হবে।যেমন "die()" statements Custom errors and error triggers Error reporting "die()" স্টেটমেন্ট ব্যাবহার করে এরর হ্যান্ডল করাএটা একটা ছোট কোড যেটা টেক্সক্ট ফাইল খুলবে।যদি ফাইলটির কোন অস্তিতই না থাকে তাহলে ব্রাউজারে নিচের মত প্রদর্শন করবে। Warning: fopen(welcome.txt) [function.fopen]: failed to open stream: No such file or directory in C:\webfolder\test.php on line 2 ইউজারকে উপরের মত মেসেজ থেকে মুক্তি দিয়ে নিজের মত বোধগম্য মেসেজ দিতে পারেন।যেমন এবার যদি ফাইলটি না পায় তাহলে এই মেসেজ দেখাবে। File not found এই কোডটি উপরের কোডের চেয়ে একটু ভিন্ন।এটা একটা সাধারন পদ্ধতি এতে error হলে স্ক্রিপ্ট বন্ধ হয়ে যাবে।তবে এ পদ্ধতি ব্যাবহার করা অনেক সময় সঠিক নয়। কাস্টম এরর হ্যান্ডলার তৈরী করাএখানে আমি সাধারন একটা পিএইচপি ফাংশন তৈরী করব যেটা এরর হলে যেন call করা যায়।এই ফাংশনে কমপক্ষে দুটি(error level and error message) এবং সর্বোচ্চ পাচটি (optionally: file, line-number, and the error context)প্যারামিটার থাকবে।error_function(error_level,error_message, error_file,error_line,error_context)
এরর রিপোর্টিং এর মান(value)
এবার একটা ফাংশন তৈরী করব এরর হ্যান্ডল এর জন্যএটা একটা সাধারন error handling ফাংশন।যখন এটা চলবে তখন এটা একটা error level এবং মেসেজ পাবে।এই লেভেল এবং মেসেজ আউটপুট হিসেবে দেখিয়ে স্ক্রিপ্ট সমাপ্ত করবে।এরর হ্যান্ডলার সেট করাপিএইচপিতে ডিফল্ট হিসেবে একটা error handler বিল্টইন থাকে।আপনি ইচ্ছে করলে এর পরিবর্তে নিজের মত error handler দিতে পারেন PHP তে।নিচের উদাহরনে দেখব কিভাবে এই নিজের তৈরী error handler ব্যাবহার করতে হয়set_error_handler("customError"); যেহেতু error handle করার জন্য আমরা নিজের তৈরী ফাংশন ব্যাবহার করতে চাই,তাই set_error_handler() এর একটা প্যারামিটার দরকার,২য় আরেকটা প্যারামিটার যোগ করা যেতে পারে error level এর জন্য। এরকম একটা উদাহরন উপরের কোডের আউটপুট হবে এমন Error: [8] Undefined variable: test কোন ভুলকে trigger করাকোন স্ক্রিপ্ট যেখানে ইউজার ডেটা ইনপুট করতে পারে সেখানে trigger করা উপকারী যখন ইউজার ভুল/অবৈধ ইনপুট করবে।trigger_error() function দিয়ে এটা করা হয়।এই উদাহরনে test ভ্যারিয়েবল যদি ১ এর চেয়ে বড় হয় তখন error হবে।আউটপুট Notice: Value must be 1 or below in C:\webfolder\test.php on line 6 একটা error কে স্ক্রিপ্টের যেকোন জায়গায় trigger করা যায় এবং আরেকটা প্যারামিটার যোগ করে নির্দিষ্ট করে দিতে পারেন যে কোন error level টি trigger করা হয়েছে। সম্ভাব্য error এর ধরন
যদি test ভ্যারিয়েবল এর মান ১ এর চেয়ে বেশি হয় তাহলে এখানে E_USER_WARNING error টি হবে এবং এখন আমরা নিজের তৈরী error handler টি ব্যাবহার করব। আউটপুট Error: [512] Value must be 1 or below Ending Script এরর লগিংPHP তে error_log() নামের একটা ফাংশন বিল্টইন আছে এটা দিয়ে যেখানে ইচ্ছা error log(যে ভুলটি হবে তার তথ্য)টি পাঠাতে পারেন এমনকি নিজের মেইল ঠিকানাতেও।ইমেইলের সাহায্যে এরর মেসেজ পাঠানো<?php//error handler function 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 set_error_handler("customError",E_USER_WARNING); //trigger error $test=2; if ($test>1) { trigger_error("Value must be 1 or below",E_USER_WARNING); } ?> আউটপুট Error: [512] Value must be 1 or below Webmaster has been notified এই কোডের কারনে এমন একটা মেইল পাবে Error: [512] Value must be 1 or below |
Post a Comment