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

کار با هدر (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

ارسال نظر

جهت استفاده از کد حتما از تگ pre استفاده نمایید .

لیست نظرات

  1. فتحی
    فتحی

    عالی بود ممنون

    11 آذر 1399 | 11:31:28
contact us