A-AA+then

ทำไมต้อง defined('MAIN_INIT')

1,182
ทำไมต้อง defined('MAIN_INIT') ด้วยครับงงอธิบายหน่อย

2 ความคิดเห็น

จริงๆแล้วมันเป็นแค่เทคนิคหนึ่งในการเขียนโปรแกรมเท่านั้น ซึ่งมันยังมีอีกหลายวิธีในการให้ผลอย่างเดียวกัน

จริงๆแล้วถ้าจะสังเกต ในทุกๆหน้าของเว็บ จะมีคำสั่งทำนองนี้อยู่ในทุกเพจ ซึ่งถ้าจะดูให้ดีจริงๆ หน้าเหล่านี้จะเป็นหน้าที่สามารถเรียกได้ผ่าน URL ทั้งสิ้น

ลองสมมุติให้เราเรียกหน้าเพจใดๆ ขึ้นมาทำงาน ตามปกติมันก็ต้องแสดงผลตามคำสั่งในเพจนั้นๆใช่มั้ยครับ

ในกรณีที่มีการประกาศ if (defined('MAIN_INIT')) { ไว้ก่อน จะเห็นว่า การเรียกหน้านั้นๆ จะไม่ประสบความสำเร็จ เนื่องจาก เราจะพบว่า เราไม่ได้มีการประกาศค่าคงที่ MAIN_INIT  เอาไว้ก่อน

และถ้าจะสังเกตุ ค่าคงที่นี้จะมีประกาศไว้ที่เดียวคือที่หน้า index.php ซึ่งเป็นหน้าหลักของ GCMS

// ค่าคงที่สำหรับป้องกันการเรียกหน้าเพจโดยตรง
DEFINE('MAIN_INIT', __FILE__);

ดังนั้น หมายความว่า เราจะไม่สามารถเรียกหน้าใดๆ ตรงๆได้ นอกจากจะเรียกผ่าน index.php เท่านั้น
1

ขอบคุณมากครับงงอยู่ตั้งนาน
2
^