ทำไมต้อง 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 ขอบคุณมากครับงงอยู่ตั้งนาน ความคิดเห็น รายละเอียด ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M ส่งความคิดเห็น
จริงๆแล้วถ้าจะสังเกต ในทุกๆหน้าของเว็บ จะมีคำสั่งทำนองนี้อยู่ในทุกเพจ ซึ่งถ้าจะดูให้ดีจริงๆ หน้าเหล่านี้จะเป็นหน้าที่สามารถเรียกได้ผ่าน URL ทั้งสิ้น
ลองสมมุติให้เราเรียกหน้าเพจใดๆ ขึ้นมาทำงาน ตามปกติมันก็ต้องแสดงผลตามคำสั่งในเพจนั้นๆใช่มั้ยครับ
ในกรณีที่มีการประกาศ if (defined('MAIN_INIT')) { ไว้ก่อน จะเห็นว่า การเรียกหน้านั้นๆ จะไม่ประสบความสำเร็จ เนื่องจาก เราจะพบว่า เราไม่ได้มีการประกาศค่าคงที่ MAIN_INIT เอาไว้ก่อน
และถ้าจะสังเกตุ ค่าคงที่นี้จะมีประกาศไว้ที่เดียวคือที่หน้า index.php ซึ่งเป็นหน้าหลักของ GCMS
// ค่าคงที่สำหรับป้องกันการเรียกหน้าเพจโดยตรง
DEFINE('MAIN_INIT', __FILE__);
ดังนั้น หมายความว่า เราจะไม่สามารถเรียกหน้าใดๆ ตรงๆได้ นอกจากจะเรียกผ่าน index.php เท่านั้น