ซอร์สโค้ด เว็บบอร์ด Text V2

คอนเซ็บในการออกแบบบอร์ดนี้ มีอยู่ว่า

1 เร็ว. ผมพยายามออกแบบให้โค้ดทำงานได้เร็วที่สุด โดยใช้ทรัพยากรของระบบน้อยที่สุด ด้วยการออกแบบให้สั้น อะไรที่มันจะซ้ำซ้อนหรือไม่จำเป็นก็ตัดออก
2 ดัดแปลงง่าย. ด้วยการออกแบบเป็นส่วนๆ ทำให้ผู้ใช้สามารถนำโค้ดไปดัดแปลงได้ง่ายขึ้น หรือการอัพเกรด ทำได้ง่ายขึ้น เพือให้สามารถมีได้หลายหลายรูปแบบในโค้ดเดียว
3 ปลอดภัย. มีความปลอดภัยสูงจากการ Hack ในข้อนี้ผมทำเท่าที่ผมรู้ครับ อาจยังไม่ครอบคลุม แต่ถ้ารู้จะปรับปรุงเพิ่มขึ้นเรื่อยๆครับ
4 จัดการง่าย. ผมพยายามออกแบบให้มีการจัดการที่ง่ายที่สุดเท่าที่จะทำได้ สามารถเซ็ตอัพได้บนหน้าเว็บ แต่ก็ยังมีข้อจำกัดบางประการ อันเนื่องมาจากเซิร์ฟเวอร์ที่ใช้มีความแตกต่างกัน แต่ก็ได้พยามยามทดสอบกับหลายๆเซิร์ฟเวอร์แล้วครับ

มีอะไรใหม่ในบอร์ดนี้
1. ที่เห็นๆ หน้าตาของหน้าแรกของบอร์ดเปลี่ยนไป ยกเว้นในส่วนของการ Post, Reply และ View ที่ยังคงรูปแบบเดิมๆอยู่ (ผมเห็นว่าสวยดีอยู่แล้ว)
2. ใช้ฐานข้อมูลและทรัพยากรต่างๆ ร่วมกับ แกลอรี่ การสมัครสมาชิก-จัดการต่างๆ ร่วมกัน แต่ก็สามารถแยกใช้เฉพาะ แกลอรี่ หรือ เว็บบอร์ดได้
3. ที่ไม่เห็นคือในส่วนของการปฎิบัติการภายในต่างๆ เปลี่ยนแปลงทั้งหมด เริ่มที่
3.1 ฐานข้อมูล เวอร์ชั่นล่าสุด เข้าถึงและจัดการได้ดีกว่าเดิม รวมถึง เร็วกว่าด้วย แก้ bug ที่พบจากเวอร์ชั่นก่อนๆ ด้วยการออกแบบโครงสร้าง และ โค้ดต่างๆ ใหม่หมด
3.2 เพิ่ม ฟิลด์ encrypt ลงบนฐานข้อมูลเพื่อปกป้องข้อมูลสำคัญ ที่สำคัญไม่สามารถ(ยาก)ที่จะถอดรหัสฟิลด์นี้ได้นอกจากเจ้าของ เนื่องจากฐานข้อมูล text โดยทั่วไปสามารถ hack เข้าไปดูข้อมูลภายในได้เพียงแค่รู้ path ของฐานข้อมูล ซึ่งฐานข้อมูลนี้ สามารถป้องกันการแก้ไขได้ แต่ไม่สามารถป้องกันการเข้าไปอ่านได้
4.เพิ่มเติมการ block ip ที่มารบกวน และ เพิ่มเติมการบล๊อกเว็บ ประเภทเว็บขายของ และมีการปรับปรุงการแบ่งหน้าเป็นแบบคล้ายๆ กับของ google
5.เพิ่มเติมการแสดงตัวอย่างก่อนส่ง
6.ปรับปรุงระบบ Admin ของบอร์ด ให้ควบคุมบอร์ดแต่ละบอร์ดได้อย่างอิสระ เช่น กำหนดให้ เฉพาะบอร์ดข่าวเท่านั้นที่โพสต์รูปได้
7.เพิ่มเติมการป้องกันการอัพโหลดไฟล์ สคริปต์ (ป้องกัน hacker อัพโหลด สคริป์ไปใช้บนเว็บของเรา)
8.เพิ่มเติมสถานะพิเศษของสมาชิก เพิ่มเติมการถาม-ตอบ-ดู โดยสมาชิกหรือไม่
9.เพิ่มเติมการจัดกลุ่มของบอร์ดโดยสามารถแบ่งออกเป็นกลุ่มต่างๆกันได้
10.ปรับปรุงระบบ ติดตั้งบอร์ดครั้งแรก

rar (1,036)

การเซ็ตอัพ

สำหรับการติดตั้งในครั้งแรก เมื่อ download ไปแล้วให้แตกไฟล์ rar ออก (ผมจะพูดถึง เว็บบอร์ดอย่างเดียว ส่วนแกลอรี่นั้นก็คล้ายกัน) จะมีไดเร็คทอรี่ webboard ซึ่งในไดเร็คทอรี่ webboard จะมีไฟล์ index.php และ อีกหลายไดเร็คทอรี่อยู่ในนั้น

แบ่งออกเป็น 2 กรณีนะครับ
1 ถ้ามีแต่บอร์ดอย่างเดียว ไม่มีหน้าอื่นอยู่ในเว็บ ผมหมายถึงเมื่อเรียกเข้ามาในเพจให้เรียกบอร์ดเลย ให้ copy ทั้ง index.php และ ไดเร็คทอรี่ทั้งหมด ไปไว้บน root ของเว็บได้เลย
2 ถ้ามีหน้า index อยู่แล้ว ให้ copy เฉพาะไดเร็คทอรี่ ไปไว้บน root แล้วทำลิงค์จากหน้า index ของคุณชี้ไปยั้ง webboard
หลังจากนั้นให้ทำการเซ็ตอัพครั้งแรกโดยการเรียก webboard เช่น http://localhost/webboard โปรแกรมเซ็ตอัพจะถูกเรียกโดยอัตโนมัติ ให้ทำการกรอกข้อความ ตามที่กำหนดโดยครบถ้วนและถูกต้องตามเว็บของท่าน โปรแกรมก็จะสร้างไฟล์ config และไดเร็คทอรี่ที่จำเป็นให้ เป็นอันเสร็จพิธี สามารถเรียก webboard ได้เลย ด้วยการเรียกแบบเดียวกับตอน setup แหละครับ
เซ็ตอัพทำอะไรบ้าง.
ถ้าคุณติดตั้งในครั้งแรก หรือ ไฟล์ config บางไฟล์มีปัญหา webboard จะเรียก setup มาให้โดยอัตโนมัติ


root คืออะไร root คือไดเร็คทอรี่ที่เป็นไดเร็คทอรี่ของ webboard ปกติถ้าระบุเป็น ../ ก็สามารถจะใช้ได้อยู่แล้ว ถ้าใช้ค่านี้แล้วไม่สามารถผ่านขั้นตอนการกำหนด root ไปได้ ให้ลองใช้ค่าอื่น เช่น ./ / หรือค่าว่าง หรือถ้าจำเป็นคุณอาจต้องสอบถามเอาจาก server
ถ้าผ่านไปได้โปรแกรมจะให้กำหนดค่าของ Admin เช่น ชื่อ และ รหัสผ่าน email ของ Admin ต้องกรอกให้ครบถ้วน ในช่อง url จะเป็นชื่อ url หลักของเว็บเพจของคุณ รวมทั้ง title ด้วย


ถ้าเกิด error ในขั้นตอนนี้ให้ลองใช้ root ที่แสดงออกมาจาก error ดู หรือให้ลองใช้เครื่องหมาย / แทน \ ดูครับ
การส่งเมล์ หมายถึงบอกให้โปรแกรมรู้ว่าเซอร์ฟเวอร์ของคุณยอมให้มีการส่งเมล์จากเซอร์ฟเวอร์หรือไม่ ถ้ายอม เว็บบอร์ดจะมีฟอร์มส่งเมล์ให้

สำหรับ ไดเร็คทอรี่ของฐานข้อมูล ค่านี้สำคัญมาก จะเป็นชื่อไดเร็คทอรี่ที่ใช้เก็บข้อมูลต่างๆของบอร์ด ปกติถูกเซ็ตเป็น data ซึ่งก็จะตรงกับชื่อไดเร็คทอรี่ที่อยู่ในเว็บบอร์ด คุณควรเปลี่ยนแปลงชื่อนี้เป็นชื่อของคุณเองเพื่อความปลอดภัย และควรกำหนดให้ตรงกันทั้งของ เว็บบอร์ดและแกลอรี่ด้วย(หากติดตั้งร่วมกัน) ถ้าหากคุณเปลี่ยนค่านี้คุณจะต้องเปลี่ยนชื่อไดเร็คทอรี่ data ตามด้วย
ก่อนการติดตั้ง คุณต้อง chmod ทุกไดเร็คทอรี่ให้เป็น 777 ก่อน
และเมื่อติดตั้งเสร็จแล้วให้ปรับ chmod ทุกไฟล์ในไดเร็คทอรี่ data ให้เป็น 777 ด้วย (ไม่ต้องปรับในไดเร็คทอรี่ย่อย)
คุณสามารถเรียกบอร์ดของคุณไปแสดงบนหน้าอื่นได้ด้วยโค้ด

<?
include('http://goragod.saiyaithai.org/webboard/news.php?category=qa&listpage=20');
?>

category=ชื่อ category ของคุณที่คุณมีในบอร์ด
listpage=จำนวนข้อมูลสูงสุดที่ต้องการแสดง

ความลับของบอร์ด

คุณสามารถใช้ \[ แทน < และ \] แทน > (เครื่องหมาย Tag) เพื่อแทรก Tag ในบอร์ด ที่อนุญาติให้ใช้ Tag ในข้อความได้ แต่คุณจะไม่สามารถสั่ง Run สคริปต์ใดๆได้ บนบอร์ด
ผู้เขียน goragod โพสต์เมื่อ 31 มี.ค. 2551 เปิดดู 11,133 ป้ายกำกับ PHP
^