لماذا أستحدم التابع header في إعادة التوجيه و أتحمل شروط استخدامه الصعبة و عدم أمكانية وجود فاصل زمني لإستخدامه
و لدي وسم جميل في الhtml هو meta يقوم بذلك و مع فاصل زمني أيضا أنا أحدده لإعادة التوجيه مثال :
' echo
'
;
يمكنك إستعمال الفاصل الزمني يا صديقي
$url ="
http://localhost "; $time = 3; header("refresh: $time; url=$url");
كما أن header الأفضل في التحويل من وجهة نظري.
هل لك أن توضح أسباب تفضيلك لاستخدام header على meta الذي لا يفرض قواعد استخدام كما يفرضها header
و شكرا لك يا صديقي
تستطيع تجنب القواعد بإضافة ob_start(); إلى البرمجية.
مميزات استعمال header :
يتم التحويل على مستوى السيرفر وليس عبر المتصفح
في حالة وضعه في بداية الصفحة فانه لا يتم عرض محتوى الصفحة و الـ Output في المتصفح وبالتالي عدم عرض المحتوى
لا يتم تفعيل زر العودة في المتصفح (previous) الذي قد يكسر بسهولة مما يؤدي الى اعادة الطلب وظهور مشكلات
التحكم الأفضل في التحويل وعدم اعطاء صلاحيات للمستخدم
طبعا هذه الميزات تكون حسب نوع التحويل 301 / 302 / 307 ... بالتوفيق
يتم التحويل على مستوى السيرفر وليس عبر المتصفح
هذه الجملة بها خطأ عزيزي لا يوجد تحويل على مستوى السرفر كل شيء يحدث في المتصفح. الهيدر
Localion: xxx
فقط يطلب من من المتصفح إعادة التوجيه والمتصفح يلبي ذلك بكل لطف :)
في حالة وضعه في بداية الصفحة فانه لا يتم عرض محتوى الصفحة و الـ Output في المتصفح وبالتالي عدم عرض المحتوى
عليك الحذر لا تتق في إعادة التوجيه عبر الهيدر Location: وحدها ! دائما أوقف السكربت بعد الهيدر Location: عبر إستعمال الدالة exit أو die
لا يوجد تحويل على مستوى السرفر كل شيء يحدث في المتصفح. الهيدر
شكرا على التصحيح، أقصد في مستوى أو في طبقة أخرى (layer) من المتصفخ أي على المستوى البرمجي وليس الهيكلي
أي في اول اتصال بين الخادم والمتصفح وليس عند عرض وقرآءة محتوى الصفحة.
دائما أوقف السكربت بعد الهيدر Location: عبر إستعمال الدالة exit أو die
اعلم هذا أمر ضروري... شكرا على تعليقك الداعم
يمكن أن تستخدمه مثلاً عندما تريد حذف عنصر، ثم إعادة توجيه المستخدم لصفحة عرض بقية العناصر، في هذه الحالة لن ترغب بجعل المستخدم ينتظر بضع ثوانٍ إضافية.
تابع الـHeader لا يعيد التوجيه من جهة السيرفير ، وهو ليس لإعادة التوجهة ، مهمته أرسال Headers من خلال بروتوكول الHTTP للمستعرض ، وأحد هذه الHeaders أو الترويسات هو إعادة التوجيه ، حيث لديه الكثير من الترويسات المهمة التي تجبر المستعرض على فعل معين ليس هناك مكان لطرحها حالياً ، ووظيفة تابع الheader تحتم عدم وجود أي output من السيرفير حتى ولو كان سطر فارغ في اول ملف الPHP لانه لا يمكن ارسال معلومات الترويسة بعد بداية output ، والتحويل من خلال header يظهر انه مختلف تماما عن إرسال output يحوي meta أو javascript باستخدام echo لإعادة التوجيه.
اخيراً كل التعليمات التي يمكن وضعها في وسوم الMeta يمكن إرسالها كترويسات Headers باستخدام تابع الheader من الترميز إلى الكاش .....الخ
التعليقات