สมมุติว่า ในหน้าเวปเพจ จะประกอบไปด้วยหลายๆส่วนดังนี้
head : เป็นพวกป้าย logo เวป
menu : เมนูสำหรับลิงค์ไปยังหน้าอื่นๆภายในเวป
member : ส่วนของการ login เข้าเวป
body : เนื้อหาต่างๆในเวป
foot : ส่วน copyright
แต่เดิมนั้นเวลาผมเขียนเวปเพจขึ้นมา1หน้านั้น เช่น ในหน้า index.php นั้น ผมต้องการให้มี ส่วนทั้งหมด 5ส่วนข้างต้นมาแสดงผลในหน้าเดียวกัน ผมจะใช้วิธี include หรือ require หน้าเพจอื่นๆที่เขียนแยกกันมา
include('head.html');
include('menu.php'); เป็นต้น
โดยในไฟล์แต่ละส่วนนั้นผมก็เขียนเฉพาะส่วนนั้น เช่น head ก็จะมีแต่ logo ของเวปเป็นต้น
จากนั้นในหน้า เพจอื่นๆ เช่น page1.php , page2.php ผมก็จะใช้วิธีเดียวกันกับที่ทำบน index.php
คือใน หน้า page1.php นั้นก็จะมีการ include ส่วนต่างๆเข้ามา เช่นเดียวกัน จะเปลี่ยนแค่บางส่วนที่ include ไม่เหมือนกัน เช่นส่วนของ menu (ในกรณีที่หน้านั้นเป็นส่วนของ admin ก็จะแสดง menu แบบadmin) ในส่วนของ body ก็จะแตกต่างกันไป เช่น page1.php เป็น การสมัครสมาชิก ก็จะเป็น รูปฟอร์มของการใส่ข้อมูลการสมัครสมาชิกเป็นต้น
(การจัดหน้าเวปในช่วงนี้ผมใช้ table เข้ามาแบ่งส่วนหน้าเวปตามที่ต้องการครับ)
ซึ่งวิธีข้างต้นมันจะเป็นการยุ่งยากลำบากในการแก้ไขมาก
แม้ว่ามันจะเป็น การ include ไฟล์มาก็จริง เช่น หากมีการแก้ ไฟล์ในส่วนของ head.html หน้าเพจอื่นๆที่มีการ include head.html ก็จะแสดงผลเปลี่ยนไปก็จริง แต่ปัญหามันอยู่ที่ว่า
เกิดไฟล์ที่ทำการ include head.html นั้นอยู่ใน part ที่ต่างกันเช่น ตัวอย่าง 2ไฟล์ดังนี้
1. /index.php
2. /member/regis.php
โดยที่ไฟล์ head.html อยู่ใน
/main/head.html
และ head.html มีการเรียกรูปภาพที่อยู่ใน
/image/logo.jpg
ปัญหามันจะอยู่ที่ว่า
เมื่อไฟล์ index.php นั้น ทำการ include('/main/head.html'); มาจะแสดงรูปได้ตามปกติ เพราะ part ในไฟล์ head.html มันเรียกหาไฟล์ /image/logo.jpg ได้ถูกต้อง
แต่ในกรณี /member/regis.php นั้น เมื่อมันมีการ include('/main/head.html'); มา ไฟล์ head.html จะ include ไม่เจอไฟล์เพราะ เนื่องจากมันจะมองว่าในโฟลเดอร์ member นั้น ไม่มี /main/head.html ซึ่งในจุดนี้ผมแก้ไขได้โดยใช้วิธีการ include('../main/head.html');
จากวิธีการข้างต้น ทำให้เห็นปัญหาคือ เรื่อง part ที่จะต้องคอยตามแก้ในแต่ละหน้า หรือว่าถ้ามีการแก้ไขในส่วนอื่นๆก็จะต้องตามแก้ไขทุกหน้า ซึ่งจะทำให้ไม่สะดวกละเสียเวลาเอามากๆ
ต่อมานั้นผมได้เปลี่ยนมาใช้วิธีที่2 ในการเขียนเวป คือ
จากตัวอย่างเดิม ในกรณี หน้าเพจ มีการแสดงผล ในส่วนๆต่างๆตามข้างต้นทีกล่าวมาคือ
head , member , body , menu และ foot ซึ่งใน ทุกๆเพจนั้น จะมีการแสดงส่วนต่างๆ คล้ายๆกันหมด เว้นแต่จะมีการเปลี่ยนแปลงบ้างเช่นส่วน body , member , menu เป็นต้น
ในวิธีการใหม่นี้ผมใช้วิธี ใช้หน้า index.php เป็น หน้าหลักในการ เรียกเปิด หน้า เพจอื่นๆขึ้นมาโดยใช้การส่งค่าตรงลิงค์ที่จะไปเช่น
ในหน้า index.php นั้น มีจุดที่จะทำการลิงค์ไปยังหน้าอื่นๆอยู่2หน้าคือ ลิงค์ไปยังหน้า page1.php และ page2.php
เมื่อจะทำการ ลิงค์ไป ยัง เพจดังกล่าวผมไม่ได้ใช้วิธีการ เรียกเปิด เพจนั้นเลยตรงๆ แต่ใช้วิธีการ เรียกเปิด หน้า index.php และตามด้วยค่าที่จะส่งไป เช่น หากต้องการเปิดหน้า page1.php ก็ให้ทำการลิงค์ไปที่ index.php?page=1
เมื่อทำการ โหลดลิงค์ดังกล่าว ในส่วนของ body ใน index.php นั้น ก็มีการใช้ if เช็คว่าค่า page ที่ GET มานั้นเรียกเปิดหน้าไหน เช่น
if( $page ==1 ) include('page1.php');
else if($page ==2) include('page2.php');