ทำไมต้อง defined('MAIN_INIT') HomeForumทำไมต้อง defined('MAIN_INIT') thaicmsite ทำไมต้อง defined('MAIN_INIT') ด้วยครับงงอธิบายหน่อย กรกฎ วิริยะ จริงๆแล้วมันเป็นแค่เทคนิคหนึ่งในการเขียนโปรแกรมเท่านั้น ซึ่งมันยังมีอีกหลายวิธีในการให้ผลอย่างเดียวกัน จริงๆแล้วถ้าจะสังเกต ในทุกๆหน้าของเว็บ จะมีคำสั่งทำนองนี้อยู่ในทุกเพจ ซึ่งถ้าจะดูให้ดีจริงๆ หน้าเหล่านี้จะเป็นหน้าที่สามารถเรียกได้ผ่าน URL ทั้งสิ้น ลองสมมุติให้เราเรียกหน้าเพจใดๆ ขึ้นมาทำงาน ตามปกติมันก็ต้องแสดงผลตามคำสั่งในเพจนั้นๆใช่มั้ยครับ ในกรณีที่มีการประกาศ if (defined('MAIN_INIT')) { ไว้ก่อน จะเห็นว่า การเรียกหน้านั้นๆ จะไม่ประสบความสำเร็จ เนื่องจาก เราจะพบว่า เราไม่ได้มีการประกาศค่าคงที่ MAIN_INIT เอาไว้ก่อน และถ้าจะสังเกตุ ค่าคงที่นี้จะมีประกาศไว้ที่เดียวคือที่หน้า index.php ซึ่งเป็นหน้าหลักของ GCMS // ค่าคงที่สำหรับป้องกันการเรียกหน้าเพจโดยตรง DEFINE('MAIN_INIT', __FILE__); ดังนั้น หมายความว่า เราจะไม่สามารถเรียกหน้าใดๆ ตรงๆได้ นอกจากจะเรียกผ่าน index.php เท่านั้น thaicmsite ขอบคุณมากครับงงอยู่ตั้งนาน Comment Detail Upload jpg, jpeg files no larger than 2M Send Comment
จริงๆแล้วถ้าจะสังเกต ในทุกๆหน้าของเว็บ จะมีคำสั่งทำนองนี้อยู่ในทุกเพจ ซึ่งถ้าจะดูให้ดีจริงๆ หน้าเหล่านี้จะเป็นหน้าที่สามารถเรียกได้ผ่าน URL ทั้งสิ้น
ลองสมมุติให้เราเรียกหน้าเพจใดๆ ขึ้นมาทำงาน ตามปกติมันก็ต้องแสดงผลตามคำสั่งในเพจนั้นๆใช่มั้ยครับ
ในกรณีที่มีการประกาศ if (defined('MAIN_INIT')) { ไว้ก่อน จะเห็นว่า การเรียกหน้านั้นๆ จะไม่ประสบความสำเร็จ เนื่องจาก เราจะพบว่า เราไม่ได้มีการประกาศค่าคงที่ MAIN_INIT เอาไว้ก่อน
และถ้าจะสังเกตุ ค่าคงที่นี้จะมีประกาศไว้ที่เดียวคือที่หน้า index.php ซึ่งเป็นหน้าหลักของ GCMS
// ค่าคงที่สำหรับป้องกันการเรียกหน้าเพจโดยตรง
DEFINE('MAIN_INIT', __FILE__);
ดังนั้น หมายความว่า เราจะไม่สามารถเรียกหน้าใดๆ ตรงๆได้ นอกจากจะเรียกผ่าน index.php เท่านั้น