یک سری توابع هستن که هدرهای مرورگرو (Http-Header) تغییر میدن و مرورگر طبق این هدر ها عمل میکنه.
چنتا ازین توابع:
هدرها تا زمانی قادرن تغییر کنن که هیچ خروجی (حتی یک space) در صفحه ی مرورگر چاپ نشده باشه.یعنی هیچ داده ای از سمت سرور به مرورگر کاربر نرسیده باشه.
مثلا کد زیر غلطه:
<html> <?php session_start(); ?>
علتش بخاطر وجود تگ html هست.چون قبل ازینکه سشن استارت بشه , تگ html در صفحه ی مرورگر چاپ شده و باعث بروز این مشکل میشه.
اگر بجای تگ html یک فاصله(space) هم بود بازم همین مشکل وجود داشت.
راه حل:
تابعی که استفاده میکنیم برای redirect:
header('location: index.php');
اما راه حل جایگزین برای redirect :
<?php echo " = 'index.php'" ?>
<?php echo "<meta http-equiv='Refresh' content='0; url=index.php'>" ?>
function redirect($url) { @header('location: ' . $url); exit('<meta http-equiv="Refresh" content="0;url='. $url .'">'); }
اما برای مدیریت ریدایرکت های دائمی یا موقتی یا وضعیت 303:
function redirect($url, $statusCode = 303) { header('Location: ' . $url, true, $statusCode); die(); }
این لینک لیستی از هدر های درخواست رو نشون میده. بطور مثال (content-type , location , refresh , ....)
منبع: محسن موحد