PHP Redirects and Headers

PHP ওয়েব ডেভেলপমেন্টে Redirects এবং Headers খুবই গুরুত্বপূর্ণ। যখন আমরা ব্যবহারকারীকে একটি পেজ থেকে অন্য পেজে পাঠাতে চাই বা ব্রাউজারের আচরণ নিয়ন্ত্রণ করতে চাই, তখন আমরা HTTP Headers ব্যবহার করি। এই ব্লগে আমরা ধাপে ধাপে শেখাবো কীভাবে PHP তে Redirect করা হয় এবং Headers ব্যবহার করা যায়।
১. Headers কি?
HTTP Headers হলো সার্ভার এবং ক্লায়েন্ট (ব্রাউজার) এর মধ্যে পাঠানো মেসেজের অংশ। এটি ব্রাউজারকে বলে দেয় কিভাবে রিকোয়েস্ট প্রক্রিয়াকরণ করতে হবে।
উদাহরণ: Content-Type, Location, Status, Cookie ইত্যাদি।
PHP তে আমরা header() ফাংশন ব্যবহার করে হেডার পাঠাই।
<?php
// Content-Type সেট করা
header("Content-Type: text/html; charset=UTF-8");
echo "Hello, World!";
?>
উপরের উদাহরণে আমরা ব্রাউজারকে বলেছি, এটি HTML কনটেন্ট যা UTF-8 এ এনকোডেড।
২. PHP Redirects কি?
Redirect হলো ব্যবহারকারীকে একটি পেজ থেকে অন্য পেজে স্বয়ংক্রিয়ভাবে পাঠানো। এটি সাধারণত ২ ধরনের হয়:
Permanent Redirect (301)
Temporary Redirect (302)
PHP তে Redirect করার জন্য আমরা header("Location: URL") ব্যবহার করি।
উদাহরণ: Simple Redirect
<?php
// ব্যবহারকারীকে example.com এ পাঠানো
header("Location: https://www.example.com");
exit();
?>
বিঃদ্রঃ
exit();ব্যবহার করা খুবই গুরুত্বপূর্ণ। কারণ Redirect এর পর যদি কোড চলে যায়, তবে অপ্রত্যাশিত আউটপুট আসতে পারে।header()ফাংশন সবসময় পেজের আউটপুটের আগে কল করতে হবে। যদি আগে কোন HTML বা স্পেস থাকে, তাহলে "Headers already sent" এরর আসবে।
৩. Permanent vs Temporary Redirect
- Permanent Redirect (301)
<?php
header("Location: https://www.newsite.com", true, 301);
exit();
?>
- এটি সার্চ ইঞ্জিনকে জানায় যে পেজটি স্থায়ীভাবে স্থানান্তরিত হয়েছে।
- Temporary Redirect (302)
<?php
header("Location: https://www.newsite.com", true, 302);
exit();
?>
- এটি সাধারণ Redirect। সার্চ ইঞ্জিন বুঝবে যে এটি অস্থায়ী।
৪. Headers দিয়ে Cache Control করা
কিছু ক্ষেত্রে আমরা চাই না যে ব্রাউজার পুরনো পেজ ক্যাশ করে রাখুক। তখন আমরা Headers ব্যবহার করি।
<?php
// কনটেন্ট কখনো ক্যাশ হবে না
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
?>
৫. অন্যান্য Useful Headers
- Content-Type: ব্রাউজারকে কনটেন্ট টাইপ জানানোর জন্য
header("Content-Type: application/json");
- Set-Cookie: কুকি সেট করার জন্য
header("Set-Cookie: user=John; expires=Wed, 10 Sep 2025 20:00:00 GMT");
- Refresh: পেজ স্বয়ংক্রিয়ভাবে রিফ্রেশ করতে
header("Refresh: 5; url=https://www.example.com");
echo "5 সেকেন্ড পর আপনি নতুন পেজে চলে যাবেন।";
৬. Common Errors এবং Tips
Headers already sent
সমস্যা:
header()কল করার আগে কোন আউটপুট HTML, স্পেস বা ইকো থাকলে।সমাধান: হেডার সবসময় পেজের শুরুতে কল করুন।
Exit ব্যবহার করা
- Redirect করার পরে
exit();ব্যবহার করুন।
- Redirect করার পরে
Absolute URL ব্যবহার করা ভালো
- কিছু সার্ভার
relative URLসমর্থন করে না।
- কিছু সার্ভার
৭. সারসংক্ষেপ
PHP তে header() ফাংশন হলো হেডার পাঠানোর মূল ফাংশন।
Redirect করার জন্য
header("Location: URL")ব্যবহার করা হয়।Redirect এর পরে সবসময়
exit();ব্যবহার করা উচিত।Headers ব্যবহার করে কনটেন্ট টাইপ, কুকি, ক্যাশ এবং রিফ্রেশ নিয়ন্ত্রণ করা যায়।
PHP তে Headers এবং Redirect সঠিকভাবে ব্যবহার করা শেখা ওয়েব ডেভেলপারদের জন্য খুবই গুরুত্বপূর্ণ। এটি সাইটের নেভিগেশন, ইউজার এক্সপেরিয়েন্স এবং SEO উন্নত করতে সাহায্য করে।




