12

لماذا أستخدم التابع header في إعادة التوجيه في لغة PHP؟

لماذا أستحدم التابع 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 ... بالتوفيق

14

يتم التحويل على مستوى السيرفر وليس عبر المتصفح

هذه الجملة بها خطأ عزيزي لا يوجد تحويل على مستوى السرفر كل شيء يحدث في المتصفح. الهيدر

Localion: xxx

فقط يطلب من من المتصفح إعادة التوجيه والمتصفح يلبي ذلك بكل لطف :)

في حالة وضعه في بداية الصفحة فانه لا يتم عرض محتوى الصفحة و الـ Output في المتصفح وبالتالي عدم عرض المحتوى

عليك الحذر لا تتق في إعادة التوجيه عبر الهيدر Location: وحدها ! دائما أوقف السكربت بعد الهيدر Location: عبر إستعمال الدالة exit أو die

لا يوجد تحويل على مستوى السرفر كل شيء يحدث في المتصفح. الهيدر

شكرا على التصحيح، أقصد في مستوى أو في طبقة أخرى (layer) من المتصفخ أي على المستوى البرمجي وليس الهيكلي

أي في اول اتصال بين الخادم والمتصفح وليس عند عرض وقرآءة محتوى الصفحة.

دائما أوقف السكربت بعد الهيدر Location: عبر إستعمال الدالة exit أو die

اعلم هذا أمر ضروري... شكرا على تعليقك الداعم

يمكن أن تستخدمه مثلاً عندما تريد حذف عنصر، ثم إعادة توجيه المستخدم لصفحة عرض بقية العناصر، في هذه الحالة لن ترغب بجعل المستخدم ينتظر بضع ثوانٍ إضافية.

و أيضا عند استخدام meta وتعين قيمته على 0 لن ينتظر المستخدم و سيتم التوجيه مباشرة

إعادة التوجيه من السيرفر تكون أسرع من أن تكون عن طريق المتصفح، ضمن PHP يتم التحويل في بداية وصول أول أجزاء الرد للمتصفح، أما عند استخدام meta فسيكون التوجيه عند وصول البيانات للمتصفح وقرائتها وتنفيذها ثم يقوم بإعادة التوجيه.

تابع الـHeader لا يعيد التوجيه من جهة السيرفير ، وهو ليس لإعادة التوجهة ، مهمته أرسال Headers من خلال بروتوكول الHTTP للمستعرض ، وأحد هذه الHeaders أو الترويسات هو إعادة التوجيه ، حيث لديه الكثير من الترويسات المهمة التي تجبر المستعرض على فعل معين ليس هناك مكان لطرحها حالياً ، ووظيفة تابع الheader تحتم عدم وجود أي output من السيرفير حتى ولو كان سطر فارغ في اول ملف الPHP لانه لا يمكن ارسال معلومات الترويسة بعد بداية output ، والتحويل من خلال header يظهر انه مختلف تماما عن إرسال output يحوي meta أو javascript باستخدام echo لإعادة التوجيه.

اخيراً كل التعليمات التي يمكن وضعها في وسوم الMeta يمكن إرسالها كترويسات Headers باستخدام تابع الheader من الترميز إلى الكاش .....الخ

صديقي و لكن أيهما أفضل لإعادة التوجيه استخدام Meta أو Header

عفوا هذا هو المثال

 echo '<meta http-equiv="refresh" content="5; url=ali.php"/>'; 

التعليق يمسح منه شيفرة إعادة التوجيه في الhtml

أنا آسف

تم التعديل، كما أخبرك الأخ قم بإضافة 4 مسافات قبل أي سطر شفرة ليظهر بالشكل الصحيح

استعمل 4 فراغات قبل كل سطر