کار با هدر (headers) در PHP

کار با هدر (headers) در PHP – در PHP تابع خیلی کاربردی وجود دارد به نام header که با استفاده از آن می توانیم به کلاینت پاسخ دهیم .
تابع header دارای 3 ورودی است ، اولین ورودی اجباری است :
1- نام و مقدار هدر به صورت Header name: Header value
2- اینکه این header با مورد قبلی که دارای همین header name بود جایگزین شود – پیشفرض false
3- عدد status code – پیشفرض متناسب با headername
ریدایرکت با header
header("Location: https://rapidcode.ir/other.php"); exit;
بارگذاری مجدد صفحه پس از زمان مشخص با header
صفحه فعلی
header("Refresh: 1"); exit;
صفحه دیگر
header("Refresh: 1;Url=\"admin.php\""); exit;
ارسال لینک دانلود بدون نیاز به وارد کردن آدرس فایل با header
header('Content-Type: audio/mpeg'); header('Content-Disposition: attachment; filename="song.mp3"'); readfile('files/Jonny Southard - Lost in Slow Motion.mp3');
احراز هویت WWW با header
if (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic'); header('HTTP/1.0 401 Unauthorized'); echo 'restricted area'; exit; } else { echo "<p>{$_SERVER['PHP_AUTH_USER']} درود</p>"; echo "<p>{$_SERVER['PHP_AUTH_PW']} رمز عبور وارد شده</p>"; }
استفاده از cache برای افزایش سرعت سایت با header
$filename = 'desert.jpg'; $headers = apache_request_headers(); if (isset($headers['If-Modified-Since']) && (strtotime($headers['If-Modified-Since']) == filemtime($filename))) { header('Last-Modified: ' . gmdate('D, d M Y H:i:s', filemtime($filename)) . ' GMT', true, 304); } else { header('Last-Modified: ' . gmdate('D, d M Y H:i:s', filemtime($filename)) . ' GMT', true, 200); header('Content-Length: ' . filesize($filename)); header('Content-Type: image/jpeg'); print file_get_contents($filename); }
کار با Access-Control برای حل خطای Cross-Origin Request Blocked
با توجه به مکانیزم CORS بدین معنا که در زمانی که درخواست xhr از کلاینت به سرور فرستاده می شود آیا دسترسی آن از قبل در header سرور تایید شده است یا خیر .
با استفاده از این مکانیزم می توانیم تعیین کنیم که چه وب سایت یا کلاینت هایی اجازه بهره برداری از منابع سایت مان را دارند .
هدر Access-Control-Allow-Origin
با استفاده از این هدر می توانیم تعیین کنیم که چه دامنه و آیپی هایی اجازه استفاده از منابع سایت را دارند .
* به معنی استفاده تمامی آیپی و دامنه ها می باشد ( آزاد )
header("Access-Control-Allow-Origin: *");
هدر Access-Control-Allow-Methods
این هدر با ما کمک می کند که تعیین کنیم کلاینت مجاز به استفاده از چه متد هایی است .
header("Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE")
هدر Access-Control-Allow-Headers
با کمک این دستور تعیین می کنیم که چه هدر هایی از سمت کلاینت قابل تایید و استفاده برای سرور است .
امکان استفاده از * وجود دارد .
header('Access-Control-Allow-Headers: Content-Type, x-requested-with')
رفع خطای cannot modify header information headers already sent
دلیل این خطا بدلیل چاپ رشته در قبل از تابع header است یا توابعی مثل setcookie و موارد مشابه که با این تابع در ارتباط هستند .
باید در نظر داشت که قبل از تابع header نباید هیچ خروجی نمایش داده شود یعنی هیچ html و رشته ای، چاپ با توابع echo و print و … نباید اعمال شود .
کار با هدر (headers) در PHP
لیست نظرات
عالی بود ممنون