|
<?php // session_save_path("/tmp"); session_start(); /* ### webboard.php Version : 2.0 Public : Mr.Burin Rujjanapan E-mail : webmaster@thaiall.com Last Modified : 2557-02-08 Created : 2547-12-01 Download : http://www.thaiall.com/source ### รายละเอียด (Detail) 1. โปรแกรมนี้ชื่ออะไรก็ได้ เช่น webboard.php board.php doc.php news.php แต่ให้นามสกุลเป็น .php 2. ให้ผู้ดูแลระบบเปลี่ยนรหัสผ่าน เป็นอย่างอื่นทันที ของ $webmaster_password เดิมคือ thaiabc ของ $edit_topic_password เดิมคือ thaiall เพราะนักเรียนอาจเข้ามาใช้รหัสผ่าน ลบหัวข้อ หรือแก้ไขหัวข้อได้ 3. กำหนด $program_type และ $dataroom ตามที่ต้องการ 4. โปรแกรมประกอบด้วย 3 ส่วน คือ 1)Setting 2)Main และ 3)Function 5. ทดสอบกับ xampp แล้วใช้งานได้ทันทีไม่ต้องปรับแต่งเลย แต่ต้องแก้ไข DOCUMENTROOT และ <DIRECTORY ".."> ### ปัญหา และวิธีแก้ไข (Problem and Solution) กรณีที่ 1 (About installation) - เปิด webboard.php ครั้งแรก คือ การติดตั้ง - ปัญหาที่อาจเกิด คือ Permission Denied ในการสร้าง Folder สำหรับ Linux - ท่านต้องกำหนด 777 ให้กับห้องที่เก็บโปรแกรมนี้ - ท่านต้องสร้างห้อง wdata ในห้องที่เก็บโปรแกรม และกำหนดเป็น 777 กรณีที่ 2 (Just information) - แค่ run โปรแกรมก็จะติดตั้งให้ และใช้งานได้ทันที (ทดสอบกับ XP Server) - ไม่พบปัญหา แต่ท่านต้องเปิดโปรแกรมมาแก้ไขค่าตามต้องการ เช่น รหัสลบหัวข้อ */ ######################################################################### ### 1) Setting Section ### Setting Group 1 : ค่าสำคัญที่ผู้ดูแลต้องเข้าใจ $webmaster_password = "thaiabc"; // รหัสนี้ใช้ลบหัวข้อ $edit_topic_password = "thaiall"; // รหัสนี้ใช้แก้ไขหัวข้อ $program_type = "board"; // board อ่านได้เขียนได้ // news ไม่แสดง link ให้ตั้งหัวข้อกันเอง // intranet ความคุมการเข้าถึงด้วย IP address // password ต้องกรอก $read_password จึงจะอ่านได้ (คุมการเขียนด้วยตัวแปร $add_keyword และ $add_text) // intrapass เป็นทั้ง intranet และมีระบบ password (ถือเป็น secure board) // puser ต้องเป็นสมาชิกจึงจะ post ได้ สามารถสร้าง user ในตัวแปร $user อยู่ใน Group 4 // ถ้าไม่อยากให้ตอบ ต้องแก้ตัวแปร $can_reply ให้เป็น "0" ถ้าใช้ร่วมกับ news จะเป็น readonly if ($program_type == "board") $bgcolor="ddffff"; if ($program_type == "news") $bgcolor="ddffdd"; if ($program_type == "intranet") $bgcolor="ffddff"; if ($program_type == "password") $bgcolor="ddddff"; if ($program_type == "intrapass") $bgcolor="ffdddd"; if ($program_type == "puser") $bgcolor="ffffdd"; if (!isset($bgcolor)) $bgcolor="ddffdd"; ### Setting Group 2 : ค่าทั่วไป $dataroom = "wdata"; // ห้องเก็บข้อมูล $max_file_size = 2097152; // 2 MB $max_note = 204800; // 200 KB $max_text = 1024; // size of text (title + name + email) $titleperpage = 10; // จำนวนหัวข้อต่อหน้า $allow_extension = "html,gif,jpg,png,txt,dbf,dat,class,swf,rar,zip,ppt,doc,xls,mdb,pdf"; # $title = "กระดานแสดงความคิดเห็น"; $footer = "พัฒนาเพิ่มเติมโดย : thaiall.com [ ไอพีของท่านคือ ". $_SERVER["REMOTE_ADDR"] . " ]"; $footer .= "<br>ปรับปรุง : 8 กุมภาพันธ์ 2557 รุ่น : 2.0"; $header = "<center><font size=6>$title</font><br>"; $header_reply = '<b>ขอเชิญร่วมแสดงความคิดเห็น<br>(Welcome your good idea)</b>'; $header_add_topic = 'Web board เป็นที่แลกเปลี่ยนความคิดเห็นของพวกเราทุกคน<br>ขอความกรุณาใช้ถ้อยคำสุภาพ และแสดงออกในเชิงสร้างสรรค์ ที่มีเหตุผลด้วย<br><font color=red>ขอสงวนสิทธิ์ ในการแก้ไข ตัดรายการ หรือข้อความ <b>ที่ไม่เหมาะสม</b> โดยผู้ดูแลระบบ</font>'; $option_text = "<font color=blue>[dd] หรือ [b] .. [/b] หรือ [u] .. [/u]<br>[img]<font color=black>http://..../x.jpg</font>[/img]<br>[url]<font color=black>http://..../x.htm</font>[/url]</font>"; # $file_header = ""; // ถ้ากำหนดชื่อแฟ้ม เช่น h.php จะอ่านข้อมูลในแฟ้มมาเป็น header $file_footer = ""; // ถ้ากำหนดชื่อแฟ้ม เช่น f.php จะอ่านข้อมูลในแฟ้มมาเป็น footer // for add-on สำหรับนำไป add-on ในโปรแกรมอื่น $show_header = "yes"; // no = ไม่แสดง $show_footer = "yes"; // no = ไม่แสดง $show_writer = "yes"; // no = ไม่แสดง $show_counter = "yes"; // no = ไม่แสดง $can_reply = "yes"; // no = ไม่รับการตอบหัวข้อ yes:ยอมให้มีการตอบหัวข้อ // $have_header = "yes"; // writer header of html $show_header_tb= "yes"; // no = ไม่แสดง $show_no = "yes"; // no = ไม่แสดง $can_search = "yes"; // no = ไม่แสดง $icon_file = "iticon.gif"; // ถ้ามีแฟ้มชื่อนี้ ก็จะแสดง icon หน้าหัวข้อ $table_width = "700"; // 700 ### Setting Group 3 : สำหรับการป้องกันการเพิ่มหัวข้อ และทำงานร่วมกันถ้า $program_type = "news" $add_keyword = "add_topic"; // การเปลี่ยนค่านี้จะทำให้ผู้ใช้เพิ่มหัวข้อไม่ได้ ถ้าไม่ทำ link ไว้ $add_text = "<center><a href='?action=".$add_keyword."'>ตั้งหัวข้อ หรือเปิดประเด็นใหม่</a></center>"; ### Setting Group 4 : เก็บอาร์เรย์ของตัวแปรต่าง ๆ # ถ้า $program_type = "intranet" จะตรวจสอบ ip ของเครื่องลูก ถ้าไม่มีใน array จะเข้า board ไม่ได้ $intranet = array("192.168.0", "202.29.78", "10.0.0", "127.0.0"); # ถ้า $program_type = "password" จะตรวจสอบ รหัสผ่านก่อนเข้า board มีให้หลายรหัส เพราะอาจมีผู้ใช้หลายกลุ่ม $password_ar = array("thaiabc", "yoyo", "pizza"); # ถ้าไม่กำหนด $program_type = "puser" ตัวแปร $user ก็จะไม่ได้ใช้ประโยชน์ # $user["username"] = "password" $user["boy"] = "girl"; $user["thaiall"] = "thaiabc"; $user["จักรพงษ์"] = "ศุขวิทย์"; // อ.ท่านนี้ให้หลวงพ่อเงิน และทำให้ผมเพิ่ม option นี้ $user["เอ บี"] = "ซี ดี"; // ทดสอบรหัสที่มีช่องไฟ ######################################################################### ### 2) Main Script Section if ($program_type == "puser") { if (isset($_POST["puser"]) && isset($user[$_POST["puser"]]) && $user[$_POST["puser"]] == $_POST["ppassword"]) { $_SESSION['puser'] = $_POST["puser"]; } if (isset($_POST["logout"])) { $_SESSION['puser'] = ""; } } if ($program_type == "password" || $program_type == "intrapass") { if (!isset($_SESSION['password'])) { if (isset($_POST['password'])) { if (in_array($_POST['password'], $password_ar)) { $_SESSION['password'] = $_POST['password']; } else { echo '<meta http-equiv=refresh content="5;url=?pg=1">'; echo 'รหัสผ่านไม่ถูกต้อง'; } } else { text_header(); echo "<br><br><form action=? method=post>"; echo "<center>Password to access information<br>"; echo "<input name=password type=password>"; echo "<input type=submit value=check name=action></form>"; text_footer(); } } } if ($program_type == "intranet" || $program_type == "intrapass") { $found_ar = 0; for($i=0;$i<count($intranet);$i++) { if (substr($_SERVER["REMOTE_ADDR"],0,strlen($intranet[$i])) == $intranet[$i]) $found_ar=1; } if ($found_ar != 1) { text_header(); echo "<center>IP address ของท่าน ไม่สามารถเข้าใช้โปรแกรมนี้<br>โปรดติดต่อผู้ดูแลระบบ<br>"; echo "เพราะกลุ่ม ip ที่อนุญาต คือ"; for($i=0;$i<count($intranet);$i++) echo "<br>".$intranet[$i]; text_footer(); } } # =============================== if (isset($_GET['reply'])) $reply = $_GET['reply']; else $reply = ""; if (isset($_GET['d'])) $delete = $_GET['d']; else $delete = ""; if (isset($_GET['e'])) $edit = $_GET['e']; else $edit = ""; if (isset($_GET['view'])) $view = $_GET['view']; else $view = ""; if (isset($_GET['secure'])) $secure = $_GET['secure']; else $secure = ""; if (isset($_GET['action'])) $actiong = $_GET['action']; else $actiong = ""; if (isset($_POST['action'])) $actionp = $_POST['action']; else $actionp = ""; # =============================== if (!file_exists($dataroom."/topic.htm")) startup_firsttime(); elseif ((!isset($_SERVER['QUERY_STRING']) && !isset($_POST['action'])) || isset($_GET['pg']) || isset($_GET['tot'])) list_main(); elseif ($reply <> "") reply_topic(); elseif ($view <> "") view_topic(); elseif ($secure <> "") secure_code_r(); elseif ($delete <> "") delete_topic(); elseif ($edit <> "") edit_topic(); elseif ($actiong == "secure_code") secure_code(); elseif ($actiong == $add_keyword) add_topic(); elseif ($actionp == "send_topic") send_topic(); else list_main(); // echo '<meta http-equiv=refresh content="5;url=?pg=1">'; ######################################################################### ### 3) Function Section function send_topic() { text_header(); global $allow_extension,$max_file_size,$max_note,$max_text,$dataroom,$last_ext,$program_type,$add_keyword,$table_width; # ------- $found_attach_ok = 0; $ar_last_ext = explode(".",$_FILES['upload']['name']); if (count($ar_last_ext) > 1) { $last_ext = $ar_last_ext[count($ar_last_ext) - 1]; $ar = explode(",",$allow_extension); $found_ext = 0; for ($i=0;$i<count($ar);$i++){ if (strtolower($last_ext) == strtolower($ar[$i])) { $found_ext = 1; } } if ($found_ext == 1) { $size = $_FILES['upload']['size']; // == upload process == if ($size > 0 && $size < $max_file_size) { $found_attach_ok = 1; } else { $found_attach_ok = 9; echo "<center><table width=". $table_width ." bgcolor=yellow align=center><td><center>ส่งแฟ้มเข้า server ไม่ได้ ขนาดแฟ้มอาจเกิดที่กำหนด (<font color=blue>$"."max_file_size = ".$max_file_size.")</font><br>"; echo "แฟ้มของคุณมีขนาด <b>$size</b> Byte และ <font color=red>มีขนาดไม่เหมาะกับระบบของเรา</td></table>"; } } else { $found_attach_ok = 9; echo "<center><table width=". $table_width ." bgcolor=yellow align=center><td><center>ไม่อนุญาตแฟ้มที่มีนามสกุล <font size=6>$last_ext</font> อันมีเหตุผลมาจากความปลอดภัย<br>"; echo "<font color=red>ถ้าท่านเห็นว่าแฟ้มขอท่านไม่น่ามีปัญหาเรื่องความปลอดภัย <b>โปรดติดต่อ webmaster</b> เพื่อรับการอนุญาต</td></table>"; } } # ------- $textlen = strlen($_POST['qtitle']) + strlen($_POST['qname']) + strlen($_POST['qemail']); if (($_POST['qtitle'] == "") || ($_POST['qnote'] == "") || ($_POST['qname'] == "") || $found_attach_ok == 9 || strlen($_POST['qnote']) > $max_note || $textlen > $max_text) { echo "<b> พบข้อผิดพลาด </b> : คุณป้อนข้อมูลไม่ครบถ้วน หรือแฟ้มมีขนาดใหญ่เกินไป หรือนามสกุลของแฟ้มไม่ถูกต้อง<br>"; echo '<meta http-equiv=refresh content="5;url=?pg=1">'; } else { $file=file ($dataroom."/topic.htm"); $k=count($file); $key=ord(substr(crypt($k,$k),-1,1)) . ord(substr(crypt($k,$k),-2,1)); if ($key == $_POST['securecode']) { $qtitle= $_POST['qtitle']; $qtitle = str_replace("?","?",$qtitle); $qnote= $_POST['qnote']; $qnote = str_replace("?","?",$qnote); $qnote= str_replace(chr(92),"#92;",$qnote); $qnote= str_replace("[dd]","<dd>",$qnote); $qnote= str_replace("[u]","<u>",$qnote); $qnote= str_replace("[/u]","</u>",$qnote); $qnote= str_replace("[b]","<b>",$qnote); $qnote= str_replace("[/b]","</b>",$qnote); $qnote= str_replace("[img]","<img src=",$qnote); $qnote= str_replace("[/img]",">",$qnote); $qnote= str_replace("[url]","[ <a href=",$qnote); $qnote= str_replace("[/url]",">คลิ๊กที่นี่ - เพื่อเปิดแหล่งข้อมูล</a> ]",$qnote); $qnote= str_replace("#92;","\",$qnote); $qname= $_POST['qname']; $qname = str_replace("?","?",$qname); $qemail= $_POST['qemail']; $qemail = str_replace("?","?",$qemail); $qnote= nl2br($qnote); $qtitle= stripslashes($qtitle); $qnote= stripslashes($qnote); $qname= stripslashes($qname); $qemail= stripslashes($qemail); $file=fopen($dataroom."/number.txt","rt"); $num=fgets($file,10); fclose ($file); $num++; $file=fopen($dataroom."/number.txt","w"); fputs($file,$num); fclose($file); $date=Date("h:ia (j/m/y)"); $attach_file = $num .".". strtolower($last_ext); $file=fopen("$dataroom/$num.htm" , "w"); fputs ($file , "<center><a href='?'>กลับหน้าหลัก</a>"); fputs ($file , "<table width=". $table_width ." border=0 bgcolor=#aabbdd><tr><td><font color=white size=4>$qtitle</td></tr></table>"); fputs ($file , "<table width=". $table_width ." border=0 bgcolor=#aabbdd><tr><td bgcolor=white>"); if ($found_attach_ok == 1) { fputs ($file , "ดาวน์โหลด : <a href=$dataroom/$attach_file>$attach_file</a><br>"); if (strtolower($last_ext) == "jpg" || strtolower($last_ext) == "gif" || strtolower($last_ext) == "png") { fputs ($file , "<img src=$dataroom/$attach_file><br>"); } } fputs($file , "$qnote<br></td></tr>"); fputs($file , "<tr><td align=right bgcolor=#dddddd><b>โดย</b> : $qname <a href=mailto:$qemail>$qemail</a><a title='". $_SERVER["REMOTE_ADDR"] . "'>.</a> "); fputs($file , " $date</font></td></tr></table></center>"); fclose($file); $file=fopen("$dataroom/$num.reply" , "w"); fputs($file , "0"); fclose($file); $file=fopen($dataroom."/topic.htm" , "a"); fputs ( $file , "<a href='?view=$num'>$qtitle</a>"); if ($found_attach_ok == 1) fputs ($file , " [<a href=$dataroom/$attach_file>+</a>]"); fputs ( $file , "</td><td align=center>$qname<br><font color=#669999>$date </font></td>\n"); fclose ($file); if ($found_attach_ok == 1) copy($_FILES['upload']['tmp_name'],"$dataroom/$num.". strtolower($last_ext)); echo "<center><table bordercolor=black border=1 cellspacing =0 width=90% bgcolor=#ddffff><tr><td>"; echo "<b>$qtitle</b><br>"; if ($found_attach_ok == 1) echo "ดาวน์โหลด : <a href=$dataroom/$attach_file>$attach_file</a><br>"; if (strtolower($last_ext) == "jpg" || strtolower($last_ext) == "gif" || strtolower($last_ext) == "png") { echo "<img src=$dataroom/$attach_file><br>"; } echo "<hr color=black>$qnote</td></tr>"; echo "<tr><td align=right bgcolor=#dddddd><b>โดย</b> : $qname <a href=mailto:$qemail>$qemail</a><a title='". $_SERVER["REMOTE_ADDR"] . "'>.</a><br>"; echo " $date</font></td></tr></table><br><a href='?'>กลับหน้าหลัก</a> เพื่อดูผลการเพิ่มหัวข้อใหม่</center>"; } else { echo "<center><font size=4>ไม่พบรหัสลับที่ท่าน ควรป้อนเข้ามาอย่างถูกต้อง<br>ซึ่งแสดงเป็น อักษรขาวบนพื้นสีแดง หรือรหัสลับนั้นหมดอายุ<br>รบกวนช่วยกรอกข้อมูลใหม่ด้วยค่ะ และขออภัยในความไม่สะดวก<br><br><a href='javascript:history.back();' target=_top>กลับไปกรอกข้อมูลใหม่</a>"; if ($program_type <> "news") echo "<form action=? method=get><input type=submit name=action value='".$add_keyword."'></form>"; } } } # =============================== function add_topic() { text_header(); global $allow_extension,$program_type,$table_width,$option_text,$header_add_topic; echo '<center><table width=' . $table_width . '><tr><td align=center>'. $header_add_topic . '</td> <tr><form enctype="multipart/form-data" action="?" method=post target=_self><td align=center bgcolor=#ffffdd> <table border=0 cellspacing=0 bgcolor=#dddddd width='. $table_width .'> <tr><td>หัวข้อ (Subject) </td><td><input name=qtitle size=60 value=""></td></tr> <tr><td valign=top>รายละเอียด</td><td valign=top><textarea rows=10 cols=90 name=qnote wrap=off> กรอกข้อมูลที่นี่ [url]http://www.facebook.com/lampangdisaster[/url] </textarea> <br>' . $option_text . '</td></tr> <tr><td>โดย</td>'; if ($program_type <> "puser") { echo "<td><input name=qname size=50 value=''>*"; } else { if (isset($_SESSION["puser"])) { echo "<td bgcolor=#ddffdd><input type=hidden name=qname size=50 value='". $_SESSION["puser"] ."'>"; echo "<b>".$_SESSION["puser"]; } } echo '</td></tr> <tr><td>อีเมล</td><td><input name=qemail size=50></td></tr> <tr><td valign=top>แนบแฟ้ม (upload)</td><td><input type=file name=upload> <br>ประเภทของแฟ้มที่อนุญาตให้ upload คือ '.$allow_extension.' </td></tr> <tr><td valign=top><hr color=red><img src=?action=secure_code></td><td valign=top><hr color=red><input name=securecode size=10> นำตัวอักษรบนพื้นสีแดงมากรอกในช่องว่างนี้ (Security code) <font color=gray><br>เพื่อป้องกันการกดซ้ำหลายครั้ง ต่อการส่งข้อมูล 1 ครั้ง</td></tr> <tr><td colspan=2 align=center><input type=submit name=action value="send_topic"> <input type=reset name=reset value="reset"></td></tr></table>รณรงค์ให้ทุกท่านใช้ชื่อจริง .. เพื่อประโยชน์ในการประสานงาน และรวมกลุ่มในอนาคต</td></table></form>'; } # =============================== function view_topic() { text_header(); global $dataroom,$can_reply,$header_reply,$table_width,$option_text,$allow_extension; $z = preg_split("/[\s=]+/",$_SERVER['QUERY_STRING']); if (file_exists("$dataroom/".$z[1].".read")) { $ar=file("$dataroom/".$z[1].".read"); $file=fopen("$dataroom/".$z[1].".read","w"); fputs($file,$ar[0] + 1); } else { $file=fopen("$dataroom/".$z[1].".read","w"); fputs($file,"1"); } fclose($file); $z = preg_split("/[\s=]+/",$_SERVER['QUERY_STRING']); echo "<form enctype='multipart/form-data' method=post action='?reply=". $z[1] ."' target=_top>"; $file = file("$dataroom/".$z[1].".htm"); for ($i=0;$i < count($file); $i++) echo str_replace(chr(9),"<dd>",$file[$i]); echo '<center>'; if ($can_reply == "yes") { echo '<br><br><table border=0 cellspacing=0 width='. $table_width .' bgcolor=#dddddd> <tr bgcolor=#aaaaaa><td valign=top align=center colspan=2>'. $header_reply . '<tr><td valign=top>รายละเอียด</td><td><textarea rows=10 cols=80 name=qnote wrap=off></textarea> <br>' . $option_text . '</td></tr> <tr><td>โดย</td><td><input name=qname size=50></td></tr> <tr><td>อีเมล</td><td><input name=qemail size=50></td></tr> <tr><td valign=top>แนบแฟ้ม (upload)</td><td><input type=file name=upload> <br>ประเภทของแฟ้มที่อนุญาตให้ upload คือ '.$allow_extension.' <tr><td valign=top><hr color=blue><img src=?secure='; echo $z[1]; echo '></td><td><hr color=blue><input name=securecode size=10>นำตัวอักษรบนพื้นสีน้ำเงินมากรอกในช่องว่างนี้ (Security code)</td></tr> <tr><td colspan=2 align=center><input type=submit name=Submit value="ส่งข้อความ"><input type=Reset name=Reset value=Clear></td></tr> </table></form>'; } text_footer(); } # =============================== function list_main() { text_header(); global $can_reply,$title,$add_text,$dataroom,$titleperpage,$program_type,$can_search,$show_no,$icon_file,$show_header_tb,$show_writer,$table_width,$show_counter; $file=file($dataroom."/topic.htm"); $show=count($file); $n=$show; if ($program_type == "puser") { user_login_form(); } else { if ($program_type <> "news") echo $add_text; } $k=""; if ($can_search == "yes") { echo "<table align=center><form action=? method=post><td><input size=8 name=keyword value='"; if (isset($_POST['keyword'])) $k=$_POST['keyword']; echo $k."'><input type=submit value='สืบค้นจากหัวข้อ'></td></form></table>"; } if (isset($_GET['pg'])) $pg = $_GET['pg']; else $pg = 1; if (isset($_GET['tot'])) $tot = $_GET['tot']; else $tot = $titleperpage; $pgcnt = round($n / $tot); if(($n / $tot) > $pgcnt) { $pgcnt++; } echo '<base target="_blank">'; if ($show_header_tb=="yes") { echo "<table align=center width=$table_width bgcolor=#88aabb><td><b><a href='?pg=1'>หน้า</a>: </b>"; for ($i=1;$i<=$pgcnt;$i++) { echo "<"; if ($pg == $i) { echo "! "; } echo "a href='?pg=$i'>$i</a>."; } echo " <a href='?tot=$n'>ทั้งหมด</a></td><td align=right>($titleperpage หัวข้อ/หน้า)</td></table>"; } $first = $tot * ($pg - 1) + 1; $last = $tot * $pg; echo "<center><table border=0 cellspacing=1 width=$table_width>"; if ($show_header_tb=="yes") { echo "<tr bgcolor=#aabbcc align=center>"; if ($show_no == "yes") echo "<td width=30>ลำดับ</td>"; echo "<td>หัวข้อ (Subject)</td>"; if ($show_writer=="yes") echo "<td width=150>ชื่อผู้ตั้งหัวข้อ<br>เวลา และวันที่</td>"; if ($show_counter=="yes") { echo "<td width=80>จำนวนที่<br>"; if ($can_reply == "yes") echo "เขียน/"; echo "อ่าน</td>"; } echo "</tr>"; } for ($i=$show - 1; $i>=0; $i--) { $n--; $chkline = $show - $i; if (strlen($k) > 0) if (strlen(strpos($file[$i], $k)) == 0) continue; if (($chkline >= $first && $chkline <= $last) || strlen($k) > 0) { $z = preg_split("/[\s?]+/",$file[$i]); $z = preg_split("/[\s']+/",$z[2]); $z = preg_split("/[\s=]+/",$z[0]); if (file_exists("$dataroom/$z[1].reply")) { $DATA=fopen("$dataroom/$z[1].reply" , "r"); $num=fgets($DATA,3); if (strlen($k) > 0) echo "<tr bgcolor=#ffffdd>"; else if (($i % 2) == 0) echo "<tr bgcolor=#dddddd>"; else echo "<tr bgcolor=white>"; if ($show_no == "yes") echo "<td align=right>".($i + 1)."</td>"; if (file_exists($icon_file)) echo "<td><img src=$icon_file>"; else echo "<td>"; $title_writer = explode('</td><td align=center>',$file[$i]); echo $title_writer[0]; if ($show_writer=="yes") echo "<td align=center>".$title_writer[1]; if ($show_counter=="yes") { echo "</td><td align=center>"; if ($can_reply == "yes") { if ($num > 5) echo "<font color=blue>$num</font>/"; else echo $num."/"; } if (file_exists("$dataroom/$z[1].read")) { $ar=file("$dataroom/$z[1].read"); if ($ar[0] > 20) echo "<font color=blue>$ar[0]</font>"; else echo "$ar[0]"; } } echo "<a href='?d=".$z[1]."'>.</a><a href='?e=".$z[1]."'>.</a></td></tr>\n"; fclose ($DATA); } } } echo "</table>"; text_footer(); } # =============================== function reply_topic() { text_header(); global $dataroom,$table_width,$allow_extension; $z = preg_split("/[\s=]+/",$_SERVER['QUERY_STRING']); # $k=filesize("$dataroom/".$z[1].".htm"); # $k=count($file) + $z[1]; # $k=fileatime("$dataroom/".$z[1].".htm") * $z[1] + filesize("$dataroom/".$z[1].".htm"); $k=fileatime("$dataroom/".$z[1].".htm") * filesize("$dataroom/".$z[1].".htm"); $key=ord(substr(crypt($k,$k),-1,1)) . ord(substr(crypt($k,$k),-2,1)); if ((strlen($_POST['qnote']) < 5) || (strlen($_POST['qname']) < 5) || ($key <> $_POST['securecode'])) { echo "<center><br><b>ข้อมูลอาจไม่ครบ หรือ Security code อาจผิดก็ได้<br>กรุณากรอกข้อมูลใหม่ด้วยค่ะ</b></center>"; } else { $qnote= $_POST['qnote']; $qnote= str_replace("?","?",$qnote); $qnote= str_replace(chr(92),"#92;",$qnote); $qnote= str_replace("[img]","<img src=",$qnote); $qnote= str_replace("[/img]",">",$qnote); $qnote= str_replace("[url]","[ <a href=",$qnote); $qnote= str_replace("[/url]",">คลิ๊กที่นี่ - เพื่อเปิดแหล่งข้อมูล</a> ]",$qnote); $qnote= str_replace("#92;","\",$qnote); $qname= $_POST['qname']; $qname = str_replace("?","?",$qname); $qemail= $_POST['qemail']; $qemail = str_replace("?","?",$qemail); $qnote= nl2br ($qnote); $qnote= stripslashes($qnote); $qname= stripslashes($qname); $qemail= stripslashes($qemail); $date=date("h:ia (j/m/y)"); # $file =fopen("$dataroom/". $z[1] .".reply" , "r"); $num=fgets($file,10); fclose ($file); $num++; $file=fopen("$dataroom/". $z[1] .".reply" , "w"); fputs($file,$num); fclose($file); # # upload reply $ar_last_ext = explode(".",$_FILES['upload']['name']); $found_ext = 0; if (count($ar_last_ext) > 1) { $last_ext = $ar_last_ext[count($ar_last_ext) - 1]; $ar = explode(",",$allow_extension); for ($i=0;$i<count($ar);$i++){ if (strtolower($last_ext) == strtolower($ar[$i])) { $found_ext = 1; } } if ($found_ext == 1) { $attach_file = $z[1] ."_". $num .".". strtolower($last_ext); copy($_FILES['upload']['tmp_name'],"$dataroom/$attach_file"); } } # $file=fopen("$dataroom/".$z[1].".htm", "at"); fputs($file,"<br><table border=0 cellspacing =0 width=" . $table_width . " bgcolor=#ffffdd align=center><tr><td valign=top align=center width=100 bgcolor=#dddddd>"); fputs($file,"ความเห็นที่<br>".$num); fputs($file,"</td><td valign=top width=600>"); if ($found_ext == 1) { fputs ($file , "ดาวน์โหลด : <a href=$dataroom/$attach_file>$attach_file</a><br>"); if (strtolower($last_ext) == "jpg" || strtolower($last_ext) == "gif" || strtolower($last_ext) == "png") { fputs ($file , "<img src=$dataroom/$attach_file><br>"); } } fputs($file,"$qnote</td></tr>"); fputs($file,"<tr><td align=right bgcolor=#808080 colspan=2><font color=white><b>โดย</b> : $qname <a href='mailto:$qemail'>$qemail</a> "); fputs($file,"$date<! ". $_SERVER["REMOTE_ADDR"] ."></td></tr></table>"); fclose ($file); echo "<br><center><table border=0 cellspacing =0 width=90% bgcolor=white><tr><td>$qnote</td></tr>"; echo "<tr><td align=right bgcolor=#dddddd><font color=green><b>โดย</b> : $qname <a href='mailto:$qemail'>$qemail</a><! ". $_SERVER["REMOTE_ADDR"] ."> "; echo " $date</font></td></tr></table><br><a href='?' target=_self>กลับหน้าหลัก</a></center>"; } } # =============================== function secure_code_r() { global $dataroom; $z = explode("=",$_SERVER["QUERY_STRING"]); # $z = explode("=",$_SERVER["REQUEST_URI"]); # $k=filesize("$dataroom/".$z[1].".htm"); # $k=fileatime("$dataroom/".$z[1].".htm") * $z[1] + filesize("$dataroom/".$z[1].".htm"); $k=fileatime("$dataroom/".$z[1].".htm") * filesize("$dataroom/".$z[1].".htm"); $key=ord(substr(crypt($k,$k),-1,1)) . ord(substr(crypt($k,$k),-2,1)); header("Content-type: image/jpeg"); $myImage = ImageCreate(80, 20); $white = ImageColorAllocate($myImage, 255, 255, 255); $red = ImageColorAllocate($myImage, 0 , 0, 255); # blue color ImageFill($myImage, 0, 0, $red); Imagestring($myImage, 5, 2, 4, "$key", $white); Imageline($myImage,1,5,75,5,$white); Imageline($myImage,1,17,75,17,$white); Imagejpeg($myImage); Imagedestroy($myImage); } # =============================== function secure_code() { global $dataroom; $file=file ($dataroom."/topic.htm"); $k=count($file); $key=ord(substr(crypt($k,$k),-1,1)) . ord(substr(crypt($k,$k),-2,1)); header("Content-type: image/jpeg"); $myImage = ImageCreate(80, 20); $white = ImageColorAllocate($myImage, 255, 255, 255); $red = ImageColorAllocate($myImage, 255, 0, 0); # red color ImageFill($myImage, 0, 0, $red); Imagestring($myImage, 5, 2, 4, "$key", $white); Imageline($myImage,1,5,75,5,$white); Imageline($myImage,1,17,75,17,$white); Imagejpeg($myImage); Imagedestroy($myImage); } # =============================== function delete_topic() { text_header(); global $delete,$webmaster_password,$dataroom; if (isset($_POST['securecode'])) { $file=file("$dataroom/topic.htm"); $k=count($file); $key=ord(substr(crypt($k,$k),-1,1)) . ord(substr(crypt($k,$k),-2,1)); if ($_POST['securecode'] == $key && $webmaster_password == $_POST['webmaster_password']) { $ar=file($dataroom."/topic.htm"); $file=fopen($dataroom."/topic.htm","w"); for ($i=0;$i<count($ar);$i++) { $z = explode("view=",$ar[$i]); $z = explode("'",$z[1]); if ($z[0] <> $delete) { fputs($file,"$ar[$i]"); } else { echo "<center><font size=6>Delete $delete : ok<br><a href='?'>Back to listing</a>"; } } fclose($file); unlink("$dataroom/".$delete.".htm"); if (file_exists("$dataroom/".$delete.".read")) unlink("$dataroom/".$delete.".read"); if (file_exists("$dataroom/".$delete.".reply")) unlink("$dataroom/".$delete.".reply"); } else { echo "<center>รหัส secure และรหัส webmaster_password ไม่ถูกต้อง โปรดตรวจสอบใหม่"; } } else { echo "<center><form action='?d=".$delete."' method=post target=_self>".'<table align=center bgcolor=#ffffdd><tr><td colspan=2> <font size=6>เว็บเพจหน้านี้สำหรับผู้ดูแลเท่านั้น</td></tr> <tr><td>รหัส secure <img src=?action=secure_code>=></td><td><input name=securecode size=10>นำตัวอักษรบนพื้นสีแดงมากรอกในช่องว่างนี้ (Security code)</td></tr> <tr><td>$webmaster_password =></td><td><input type=password name=webmaster_password size=10></td></tr> <tr><td colspan=2><input type=submit value=ยืนยันการลบหัวข้อ></td></tr></table> </form>'; } } # =============================== function edit_topic() { text_header(); global $edit,$edit_topic_password,$dataroom; if (isset($_POST['securecode'])) { $file=file("$dataroom/topic.htm"); $k=count($file); $key=ord(substr(crypt($k,$k),-1,1)) . ord(substr(crypt($k,$k),-2,1)); if ($_POST['securecode'] == $key && $edit_topic_password == $_POST['edit_topic_password']) { $file=fopen($dataroom."/".$edit.".htm","w"); fputs($file,$_POST['qnote']); fclose($file); echo "<center>แก้ไขเรียบร้อย<br><a href='?' target=_self>กลับหน้าหลัก</a>"; } else { echo "<center>รหัส secure และรหัส edit_topic_password ไม่ถูกต้อง โปรดตรวจสอบใหม่"; } } else { echo "<center><form action='?e=".$edit."' method=post target=_self>"."<table align=center bgcolor=#ffdddd><tr><td colspan=2 align=center> <font size=6>เว็บเพจหน้านี้สำหรับผู้ดูแลเท่านั้น</td></tr> <tr><td align=right>รหัส secure <img src=?action=secure_code>=></td><td><input name=securecode size=10>นำตัวอักษรบนพื้นสีแดงมากรอกในช่องว่างนี้ (Security code)</td></tr> <tr><td align=right>edit_topic_password =></td><td><input type=password name=edit_topic_password size=10></td></tr> <tr><td colspan=2> <textarea rows=15 cols=90 name=qnote>"; $ear=file("$dataroom/".$edit.".htm"); for ($i=0;$i<count($ear);$i++) { echo $ear[$i]; } echo '</textarea></td></tr> <tr><td colspan=2 align=center><input type=submit value=ยืนยันการแก้ไขหัวข้อ></td></tr></table> </form>'; } } # =============================== function user_login_form() { global $add_text; echo "<table width=98% bgcolor=white><form action='' method=post>"; if (!isset($_SESSION["puser"]) || strlen($_SESSION["puser"]) < 1) { echo "<td><b>ระบบ Login</b> <br>สำหรับผู้มีสิทธิ์<br>ผู้อ่านทั่วไปไม่จำเป็นต้อง Login <td>User :<td><input name=puser> <td>Password :<td><input name=ppassword type=password> <td valign=middle><br><input type=submit value=login name=login>"; } else { echo "<td><b>ยินดีต้อนรับ<b> : ". $_SESSION["puser"] . "<br>". $add_text ." <td valign=middle><br><input type=submit value=logout name=logout>"; } echo "</form></table>"; } # =============================== function text_header() { global $title,$bgcolor,$show_header,$have_header,$file_header,$header; if (file_exists($file_header)) require($file_header); else { if ($have_header == "yes") { echo '<html><head><meta http-equiv=content-type content="text/html; charset=windows-874"> <meta name=keywords content="webboard,opinion,forum"><meta name=description content="'; echo $title; echo '"><title>'; echo $title; echo '</title><style type="text/css"> body{scrollbar-base-color:gray;scrollbar-arrow-color:yellow;font-family:microsoft sans serif;font-size:10pt} a:link{color:red;text-decoration:none;} a:visited{color:purple;text-decoration:underline;} a:hover{color:blue;text-decoration:none;background-color:#ffffdd;} td{font-size:10pt;font-family:microsoft sans serif;} textarea{font-size:10pt;font-family:microsoft sans serif;} </style><body bgcolor=#'; echo $bgcolor; echo ' leftmargin=0 topmargin=0>'; } if ($show_header == "yes") echo $header; } } # =============================== function text_footer() { global $footer,$show_footer,$file_footer; if (file_exists($file_footer)) require($file_footer); else { if ($show_footer == "yes") echo $footer; } exit; } # =============================== function startup_firsttime() { global $dataroom; mkdir("$dataroom",0755); $file=fopen($dataroom."/topic.htm","w"); fclose ($file); $file=fopen($dataroom."/number.txt","w"); fputs ($file,"0"); fclose ($file); echo '<html><head><meta http-equiv=content-type content="text/html; charset=windows-874">'; echo '<meta http-equiv=refresh content="30;url=?pg=1"><center>โปรมนี้ถูกติดตั้ง โดยการสร้างห้อง '; echo $dataroom; echo ' ในห้องนี้เพื่อเก็บข้อมูล<br>สร้างแฟ้ม topic.htm ไว้เก็บข้อมูล<br>สร้างแฟ้ม number.txt ไว้เก็บเลขหัวข้อล่าสุด'; echo '<hr color="red">โปรดรอประมาณ 30 วินาที<br>เพื่อเข้าสู่ <a href="?pg=1">หน้าแรก</a> ของระบบ'; } ?> |