GORAGOD.com
freelance, web developer, web designer, hosting, domain name
Home
Host & Domain
Portfolio
ทำไมต้อง defined('MAIN_INIT')
Home
Forum
ทำไมต้อง defined('MAIN_INIT')
thaicmsite
ทำไมต้อง defined('MAIN_INIT') ด้วยครับงงอธิบายหน่อย
goragod
จริงๆแล้วมันเป็นแค่เทคนิคหนึ่งในการเขียนโปรแกรมเท่านั้น ซึ่งมันยังมีอีกหลายวิธีในการให้ผลอย่างเดียวกัน
จริงๆแล้วถ้าจะสังเกต ในทุกๆหน้าของเว็บ จะมีคำสั่งทำนองนี้อยู่ในทุกเพจ ซึ่งถ้าจะดูให้ดีจริงๆ หน้าเหล่านี้จะเป็นหน้าที่สามารถเรียกได้ผ่าน URL ทั้งสิ้น
ลองสมมุติให้เราเรียกหน้าเพจใดๆ ขึ้นมาทำงาน ตามปกติมันก็ต้องแสดงผลตามคำสั่งในเพจนั้นๆใช่มั้ยครับ
ในกรณีที่มีการประกาศ if (defined('MAIN_INIT')) { ไว้ก่อน จะเห็นว่า การเรียกหน้านั้นๆ จะไม่ประสบความสำเร็จ เนื่องจาก เราจะพบว่า เราไม่ได้มีการประกาศค่าคงที่ MAIN_INIT เอาไว้ก่อน
และถ้าจะสังเกตุ ค่าคงที่นี้จะมีประกาศไว้ที่เดียวคือที่หน้า index.php ซึ่งเป็นหน้าหลักของ GCMS
// ค่าคงที่สำหรับป้องกันการเรียกหน้าเพจโดยตรง
DEFINE('MAIN_INIT', __FILE__);
ดังนั้น หมายความว่า เราจะไม่สามารถเรียกหน้าใดๆ ตรงๆได้ นอกจากจะเรียกผ่าน index.php เท่านั้น
thaicmsite
ขอบคุณมากครับงงอยู่ตั้งนาน
ความคิดเห็น
รายละเอียด
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 1024
^
จริงๆแล้วถ้าจะสังเกต ในทุกๆหน้าของเว็บ จะมีคำสั่งทำนองนี้อยู่ในทุกเพจ ซึ่งถ้าจะดูให้ดีจริงๆ หน้าเหล่านี้จะเป็นหน้าที่สามารถเรียกได้ผ่าน URL ทั้งสิ้น
ลองสมมุติให้เราเรียกหน้าเพจใดๆ ขึ้นมาทำงาน ตามปกติมันก็ต้องแสดงผลตามคำสั่งในเพจนั้นๆใช่มั้ยครับ
ในกรณีที่มีการประกาศ if (defined('MAIN_INIT')) { ไว้ก่อน จะเห็นว่า การเรียกหน้านั้นๆ จะไม่ประสบความสำเร็จ เนื่องจาก เราจะพบว่า เราไม่ได้มีการประกาศค่าคงที่ MAIN_INIT เอาไว้ก่อน
และถ้าจะสังเกตุ ค่าคงที่นี้จะมีประกาศไว้ที่เดียวคือที่หน้า index.php ซึ่งเป็นหน้าหลักของ GCMS
// ค่าคงที่สำหรับป้องกันการเรียกหน้าเพจโดยตรง
DEFINE('MAIN_INIT', __FILE__);
ดังนั้น หมายความว่า เราจะไม่สามารถเรียกหน้าใดๆ ตรงๆได้ นอกจากจะเรียกผ่าน index.php เท่านั้น