jomtee

Thu 14 Feb 2008 11:47:45
Thu 14 Feb 2008 11:47:45
header("Location: login.html");
กับ
echo "<meta http-equiv=\"refresh\" content=\"0;URL=login.php\" />";
ต่างกันยังไงครับ เพราะเวลาใช้ ผมจะใช้
echo "<meta http-equiv=\"refresh\" content=\"0;URL=admin.php\" />";
แต่ header("Location: login.html");
มันฟ้อง error ครับ
webmaster

Thu 14 Feb 2008 22:11:33
Thu 14 Feb 2008 22:11:33
ต้องเข้าใจการทำงานของ http protocol ด้วยนิดนึงครับ
Server จะทำการส่ง header มาบอก client ก่อนจะทำการส่ง content ดังนั้น
header() จะทำงานได้เฉพาะก่อนมีการส่ง content เท่านั้นครับ ส่วน meta tag นั้นจะเป็นส่วนของ head ของ content เพื่อให้ browser ทำงานเสมือนว่ามีการส่ง header มาสั่งเช่นเดียวกัน แต่ทั้งสองอย่างจะต่างกันตรงที่ header() จะทำงานเมื่อ browser อ่าน header ของเอกสารมาถึงถ้ามีคำสั่งดังกล่าว browser จะทำการไปเรียกเอกสารที่ระบุทันที ส่วน meta tag อย่างที่บอกว่ามันเป็นเพียง content แบบนึงดังนั้น browser จะต้องรอรับข้อมูลในส่วน content ก่อนถึงจะทำงานดังต้องการได้
header จะเป็นการบังคับ browser ที่มีประสิทธิภาพมากกว่า ส่วน meta นั้นอาจจะมีปัญหาในบางครั้งในบาง browser ครับ
ดังที่แจ้งแล้วว่า header ทำงานจะต้องส่งก่อน content ดังนั้นคำสั่ง header จึงต้องส่งไปก่อน content ทั้งหมด ก่อนจะมีการ echo หรือแม้แต่ error ซึ่งก็จะมีการ render error ไปยัง browser อาจจะทำให้ error ได้เช่นกันครับ
Server จะทำการส่ง header มาบอก client ก่อนจะทำการส่ง content ดังนั้น
header() จะทำงานได้เฉพาะก่อนมีการส่ง content เท่านั้นครับ ส่วน meta tag นั้นจะเป็นส่วนของ head ของ content เพื่อให้ browser ทำงานเสมือนว่ามีการส่ง header มาสั่งเช่นเดียวกัน แต่ทั้งสองอย่างจะต่างกันตรงที่ header() จะทำงานเมื่อ browser อ่าน header ของเอกสารมาถึงถ้ามีคำสั่งดังกล่าว browser จะทำการไปเรียกเอกสารที่ระบุทันที ส่วน meta tag อย่างที่บอกว่ามันเป็นเพียง content แบบนึงดังนั้น browser จะต้องรอรับข้อมูลในส่วน content ก่อนถึงจะทำงานดังต้องการได้
header จะเป็นการบังคับ browser ที่มีประสิทธิภาพมากกว่า ส่วน meta นั้นอาจจะมีปัญหาในบางครั้งในบาง browser ครับ
ดังที่แจ้งแล้วว่า header ทำงานจะต้องส่งก่อน content ดังนั้นคำสั่ง header จึงต้องส่งไปก่อน content ทั้งหมด ก่อนจะมีการ echo หรือแม้แต่ error ซึ่งก็จะมีการ render error ไปยัง browser อาจจะทำให้ error ได้เช่นกันครับ
โจม

Fri 15 Feb 2008 08:35:06
Fri 15 Feb 2008 08:35:06
ขอบคุณครับ
buff

Sun 27 Jul 2008 19:47:16
Sun 27 Jul 2008 19:47:16
อธิบายได้ดี ครับ ขอบคุงครับ

















