thaiall logomy background
coding : keepmemo.php.
my town
Source : Perl | PHP | ASP | JSP | HTML | HTML5 | JavaScript | Java | COBOL | C++ | MS Access | VBNet | VB | Python | โค้ดดี
File : keepmemo.php. ID : 9125
Skin : Default | Sons-of-obsidian | Sunburst | Highlighter | Full
<?
// session_save_path("/tmp");
session_start();
/*
### keepmemo.php Version : 1.0b
Public : Mr.Burin Rujjanapan e-mail : webmaster@thaiall.com 
Last Modified : 2549-07-26 Created : 2547-12-01 
Download : http://www.thaiall.com/source 
ถูกพัฒนาเพิ่มเติมจากโปรแกรม webboard.php รุ่น 1.3a

### รายละเอียด (Detail)
1. ปรับปรุงตามความต้องการของ จักรพงษ์ ศุขวิทย์ Tel.0-1740-6176
2. เพิ่ม Setting Group 5 ใช้กำหนด Column สำหรับแสดงผล
3. $puser_admin สามารถอ่าน และลบได้ทุกเรื่อง
4. หนังสือถูกอ่านได้เฉพาะ ผู้ส่ง กับ ผู้รับเท่านั้น เพราะ $not_read = "yes" 
*/
##############################################################################
### Setting Section
### Setting Group 1 : ค่าสำคัญที่ผู้ดูแลต้องเข้าใจ
$webmaster_password = "thaiabc";  // รหัสนี้ใช้ลบกระทู้
$edit_topic_password = "thaiall"; // รหัสนี้ใช้แก้ไขกระทู้
$program_type = "puser";      
  // board     อ่านได้เขียนได้
  // news      ไม่แสดง link ให้ตั้งกระทู้กันเอง
  // intranet  ความคุมการเข้าถึงด้วย IP address
  // password  ต้องกรอก $read_password จึงจะอ่านได้ (คุมการเขียนด้วยตัวแปร $add_keyword และ $add_text)
  // intrapass เป็นทั้ง intranet และมีระบบ password (ถือเป็น secure board)
  // puser     ต้องเป็นสมาชิกจึงจะ post ได้ สามารถสร้าง user ในตัวแปร $user อยู่ใน Group 4
  // ถ้าไม่อยากให้ตอบต้องแก้ตัวแปร $canreply ให้เป็น "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      = "kdata";          // ห้องเก็บข้อมูล
$canreply      = "1";              // 0:ไม่รับการตอบกระทู้  1:ยอมให้มีการตอบกระทู้
$max_file_size = 2097152;     // 2 MB
$max_note      = 204800;      // 200 KB
$max_text      = 1024;        // size of text (title + name + email)
$titleperpage  = 20;          // จำนวนหัวเรื่องต่อหน้า
$allow_extension = "html,gif,jpg,png,txt,dbf,dat,class,swf,rar,zip,ppt,doc,xls,mdb";
$title         = "ทะเบียนสมุดคำสั่ง";
$footer1       = "<br>Developer : <b>thaiall.com</b> Your IP Address : <b>". $_SERVER["REMOTE_ADDR"] ."</b>";
$footer2       = "<br>รุ่น : 1.0a";
$footer3       = "";
$show_header   = "yes"; // no = ไม่แสดง (สำหรับนำไป add-on ในโปรแกรมอื่น)
$show_footer   = "yes"; // no = ไม่แสดง (สำหรับนำไป add-on ในโปรแกรมอื่น)
$show_no       = "yes"; // no = ไม่แสดง
$can_search    = "yes"; // no = ไม่แสดง

### Setting Group 3 : สำหรับการป้องกันการเพิ่มกระทู้ และทำงานร่วมกันถ้า $program_type = "news"
$add_keyword   = "add_topic";   // การเปลี่ยนค่านี้จะทำให้ผู้ใช้เพิ่มกระทู้ไม่ได้ ถ้าไม่ทำ link ไว้
$add_text_dsp  = "ส่งเรื่อง";   // ข้อความประกอบ Link
$add_text      = "<a href=?action=".$add_keyword.">$add_text_dsp</a>";

### 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 = array("thaiabc", "yoyo", "romeo");

### Setting Group 5 : กำหนด Column 
# ส่วนนี้ทำงานเมื่อ $program_type = "puser"
# $puser_admin : ผู้ดูแลระบบ ลบ หรือแก้ไขได้ทุกกระทู้
# $puser_admin[ user name ] = password;
$puser_admin["admin"] = "p";
$puser_admin["บุรินทร์ รุจจนพันธุ์"] = "จักรพงษ์";
$puser_admin["aaa"] = "aaa";
# $user : ผู้ใช้ทั่วไป ลบ หรือแก้ไข เฉพาะของตนเอง
# $user["username"] = "password"
$user["bbb"]      = "bbb";    
$user["ccc"]      = "ccc";    
$user["boy"]      = "girl";    
$user["thaiall"]  = "thaiabc";
$user["จักรพงษ์"] = "ศุขวิทย์"; // อ.ท่านนี้ให้หลวงพ่อเงิน และทำให้ผมเพิ่ม option นี้
$user["เอ บี"]    = "ซี ดี";    // ทดสอบรหัสที่มีช่องไฟ
# กำหนดหลักที่ใช้แสดงผล
$col_receiver = "yes"; // no = ไม่แสดง ผู้รับ
$col_owner    = "yes"; // no = ไม่แสดง เจ้าของเรื่อง
$col_actgroup = "yes"; // no = ไม่แสดง กลุ่มภารกิจ
$not_read     = "yes"; // ไม่อนุญาตให้อ่าน

##############################################################################
### 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 (isset($_POST["puser"]))
    if (isset($puser_admin[$_POST["puser"]]) && $puser_admin[$_POST["puser"]] == $_POST["ppassword"])
      $_SESSION['puser'] = $_POST["puser"];
}
if ($program_type == "password" || $program_type == "intrapass") {
  if (!isset($_SESSION['password'])) {
    if (isset($_POST['password'])) {
      if (in_array($_POST['password'], $password)) { 
        $_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">';
##############################################################################
### Function Section
function send_topic() {
text_header();
global $allow_extension,$max_file_size,$max_note,$max_text,$dataroom,$last_ext,$program_type,$add_keyword;
# -------
$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=780 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>มีขนาดไม่เหมาะกับระบบของเรา</table>";
      }
    } else {
      $found_attach_ok = 9;
      echo "<center><table width=780 bgcolor=yellow align=center><td><center>ไม่อนุญาตแฟ้มที่มีนามสกุล <font size=6>$last_ext</font> อันมีเหตุผลมาจากความปลอดภัย<br>";
      echo "<font color=red>ถ้าท่านเห็นว่าแฟ้มขอท่านไม่น่ามีปัญหาเรื่องความปลอดภัย <b>โปรดติดต่อ webmaster</b> เพื่อรับการอนุญาต</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> Error </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= htmlspecialchars ($_POST['qtitle']);
    $qnote= $_POST['qnote']; 
    $qnote= str_replace(chr(92),"#92;",$qnote);
    $qnote= htmlspecialchars ($qnote);
    $qnote= str_replace("[img]","<img src=",$qnote); 
    $qnote= str_replace("[/img]",">",$qnote); 
    $qnote= str_replace("[url]","[ <a href=",$qnote); 
    $qnote= str_replace("[/url]",">Web link</a> ]",$qnote); 
    $qnote= str_replace("#92;","&#92;",$qnote);
    $qname= htmlspecialchars ($_POST['qname']);
    $qemail= htmlspecialchars ($_POST['qemail']);
    $qnote= nl2br ($qnote);
    $qtitle= stripslashes ($qtitle);
    $qnote= stripslashes ($qnote);
    $qname= stripslashes ($qname);
    $qemail= stripslashes ($qemail);
    $qreceiver = htmlspecialchars ($_POST['qreceiver']);
    $qactgroup = htmlspecialchars ($_POST['qactgroup']);
    $qowner = htmlspecialchars ($_POST['qowner']);
	$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>");
    fputs ($FILE , "<table width=90% border=0 bgcolor=#000080><tr><td><font color=white size=4>$qtitle</table>");
    fputs ($FILE , "<table width=90% bordercolor=#000080 border=1><tr><td bgcolor=white>");
    if ($found_attach_ok == 1) { 
      fputs ($FILE , "Download : <a href=$dataroom/$attach_file>$attach_file</a><br>");
      if (strtolower($last_ext) == "jpg" || strtolower($last_ext) == "gif" || strtolower($last_ext) == "png") { 
        fputs ($FILE , "<center><img src=$dataroom/$attach_file></center><br>");
      }
    }
    fputs ($FILE , "<br>$qnote<br><br>");
    fputs ($FILE , "<tr><td align=right bgcolor=black><font color=white><small><b>ผู้ส่ง :</b> $qname <a href=mailto:$qemail>$qemail</a><a title='". $_SERVER["REMOTE_ADDR"] . "'>.</a><br>");
    fputs ($FILE , " $date</font></table></center>");
    fclose ($FILE);       
    $FILE=fopen("$dataroom/$num.reply" , "w");
    fputs ($FILE , "0");
    fclose ($FILE);
	$FILE=fopen($dataroom."/topic.htm" , "a");
	fputs ( $FILE , "<td>". str_replace("(","<br>(",$date));
	fputs ( $FILE , "<td>". $qreceiver);
	fputs ( $FILE , "<td><a href='?view=$num'>$qtitle</a>");
	fputs ( $FILE , "<td>". $qactgroup);
	fputs ( $FILE , "<td>". $qowner);
    if ($found_attach_ok == 1) fputs ($FILE , " [<a href=$dataroom/$attach_file>+</a>]");
    fputs ( $FILE , "<td align=center>$qname\n");
    fclose ($FILE);   
    if ($found_attach_ok == 1) copy($_FILES['upload']['tmp_name'],"$dataroom/$num.". strtolower($last_ext));
    # if (strlen($qemail) > 8) { mail("$qemail","You post message at lampang_go_th_webboard","$qnote","From: webmaster@lampang.go.th"); }
    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 "Download : <a href=$dataroom/$attach_file>$attach_file</a><br>";
    if (strtolower($last_ext) == "jpg" || strtolower($last_ext) == "gif" || strtolower($last_ext) == "png") { 
      echo "<center><img src=$dataroom/$attach_file></center><br>";
    }
    echo "<hr color=black>$qnote";
    echo "<tr><td align=right bgcolor=black><font color=white><small><b>ผู้ส่ง :</b> $qname <a href=mailto:$qemail>$qemail</a><a title='". $_SERVER["REMOTE_ADDR"] . "'>.</a><br>";
    echo " $date</font></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,$col_receiver,$col_owner,$col_actgroup;
echo '
<center><table width=80%>
<td align=center>โปรดใช้ความระมัดระวังในการกรอกข้อมูล
</table>
<table border=0 bordercolor=black bgcolor=#ffffdd><form enctype="multipart/form-data" action=? method=post target=_self><td align=center>
<table border=0 cellspacing=0  bgcolor=#dddddd width=600>
<tr bgcolor=#bbbbbb><td>หัวเรื่อง<td><input name=qtitle size=60 value=>
<tr><td valign=top>รายละเอียด<td valign=top><textarea rows=10 cols=90 name=qnote wrap=off></textarea>
<div align=right>
<font face=fixedsys color=blue>[img]<font color=black>http://..../x.jpg</font>[/img]</font>	
<br><font face=fixedsys color=blue>[url]<font color=black>http://..../x.htm</font>[/url]</font>	
</div>
<tr><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 '<tr bgcolor=#bbbbbb><td>อีเมลของผู้ส่ง<td><input name=qemail size=50>';
if ($col_receiver == "yes") echo '<tr><td>ผู้รับ<td><input name=qreceiver size=50> กรอกให้ตรงกับชื่อผู้รับ';
if ($col_owner == "yes")    echo '<tr bgcolor=#bbbbbb><td>กลุ่มภารกิจ<td><input name=qactgroup size=50>';
if ($col_actgroup == "yes") echo '<tr><td>เจ้าของเรื่อง<td><input name=qowner size=50>';
echo '<tr bgcolor=#bbbbbb><td valign=top>แนบแฟ้ม (File)<td><input type=file name=upload>
<br>นามสกุลแฟ้มที่ upload ได้แก่ '.$allow_extension.'
<tr><td valign=top><hr color=red><img src=?action=secure_code><td valign=top><hr color=red><input name=securecode size=10> นำตัวอักษร สีขาวบนพื้นแดง มาป้อนในช่องนี้
<font color=gray><br>เพื่อป้องกันการกดซ้ำหลายครั้ง ต่อการส่งข้อมูล 1 ครั้ง
<tr><td colspan=2  align=center><input type=Submit  name=action value="send_topic">
<input type=Reset  name=Reset value="reset">
</table>
รณรงค์ให้ทุกท่านใช้ชื่อจริง .. เพื่อประโยชน์ในการประสานงาน และรวมกลุ่มในอนาคต</table>
</form>';
}
# ===============================
function view_topic() {
text_header();
global $dataroom,$canreply,$program_type;
$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 method=post action='?reply=". $z[1] ."' target=_top>";
$FILE = file("$dataroom/".$z[1].".htm");
for ($i=0;$i < count($FILE) ; $i++) { echo $FILE[$i]; }
echo '<center>';
if ($canreply == "1") {
echo '<hr width=90%><b>ขอเชิญร่วมแสดงความคิดเห็น<br>(Welcome your good idea)</b>
<table border=0 cellspacing=0 bgcolor=#dddddd>
<tr><td valign=top>รายละเอียด<br>(Detail)<td><textarea rows=10 cols=80 name=qnote wrap=off></textarea>
<div align=right>
<font face=fixedsys color=blue>[img]<font color=black>http://..../x.jpg</font>[/img]</font>	
<br><font face=fixedsys color=blue>[url]<font color=black>http://..../x.htm</font>[/url]</font>	
</div>
<tr><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 '<tr><td>อีเมล (E-mail)<td><input name=qemail size=50>
<tr><td valign=top><img src=?secure='; echo $z[1]; echo '><td><input name=securecode size=10>นำตัวอักษรบนพื้นน้ำเงินกรอกในช่องนี้(Secure code)
<tr><td colspan=2 align=center><input type=Submit  name=Submit value="ส่งข้อความ"><input type=Reset  name=Reset value=Clear>
</table></form>';
}
text_footer();
}
# ===============================
function list_main() {
text_header();
global $title,$add_text,$dataroom,$titleperpage,$program_type,$can_search,$show_no,$col_receiver,$col_owner,$col_actgroup,$not_read,$puser_admin;
$file=file($dataroom."/topic.htm");
$show=count($file);
$n=$show+1;
$show--;
if ($program_type == "puser") {
  user_login_form();
} else {
  if ($program_type <> "news") echo $add_text;
}
$k="";
if ($can_search <> "yes") {
  echo "<table><form action=? method=post><td><input name=keyword value='";
  if (isset($_POST['keyword'])) $k=$_POST['keyword'];
  echo $k."'><input type=submit value='สืบค้นจากหัวเรื่อง หรือชื่อผู้ตั้งกระทู้'></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">';
echo "<table align=center width=98% bgcolor=#88ff88><td><b>เลือกหน้า : </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 align=right>($titleperpage หัวเรื่อง/หน้า)</table>";
$first = $tot * ($pg - 1) + 1;
$last = $tot * $pg;
echo "<center><table border=0 cellspacing=1 width=98%><tr bgcolor=#88ffff align=center>";
echo "<td width=15>ที่<td width=70>วันที่/เวลา";
if ($col_receiver == "yes") echo "<td width=100>ผู้รับ";
echo "<td>เรื่อง";
if ($col_actgroup == "yes") echo "<td width=100>กลุ่มภารกิจ";
if ($col_owner == "yes") echo "<td width=100>เจ้าของเรื่อง";
echo "<td width=100>ผู้ส่ง\n";
for ($i=$show; $i>=0; $i--) {
  $n=$n-1;
  $chkline = $show - $i + 1;  
  if (strlen($k) > 0)  if (strlen(strpos($file[$i], $k)) == 0) continue;
  if ($chkline >= $first && $chkline <= $last) {
	$z = preg_split("/[\s?]+/",$file[$i]);    
    $z = preg_split("/[\s']+/",$z[2]);     
    $z = preg_split("/[\s=]+/",$z[0]);     
    $zid = split("'",$file[$i]);    
    $zid = split("=",$zid[1]);    
    $zusr = split("<td",$file[$i]);    
	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>$n";
    $read = 0;
    if (isset($_SESSION["puser"]) && strlen($_SESSION["puser"]) > 0 ) {
      if ($not_read == "yes" && !isset($puser_admin[$_SESSION["puser"]])) $read = 0;
      if (isset($puser_admin[$_SESSION["puser"]])) $read = 1;
      if (strlen(strpos($zusr[2], $_SESSION["puser"])) > 0) $read = 1;
      if (strlen(strpos($zusr[6], $_SESSION["puser"])) > 0) $read = 2;
	}
	if ($read == 0)
      echo str_replace("<a","<!a",$file[$i]);
    else
      echo "$file[$i] ";
    if (isset($_SESSION["puser"]) && strlen($_SESSION["puser"]) > 0 )
      if (isset($puser_admin[$_SESSION["puser"]]) || $read == 2)
        echo "<a href='?d=".$zid[1]."'>.</a><a href='?e=".$zid[1]."'>.</a>\n";	
  }
}
echo "</table>";
text_footer();
}
# ===============================
function reply_topic() {
text_header();
global $dataroom;
$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>ข้อมูลอาจไม่ครบ หรือ Secure code อาจผิดก็ได้<br>กรุณากรอกข้อมูลใหม่ด้วยค่ะ</b></center>";
} else { 
  $qnote= $_POST['qnote'];
  $qnote= str_replace(chr(92),"#92;",$qnote);
  $qnote= htmlspecialchars ($qnote);
  $qnote= str_replace("[img]","<img src=",$qnote); 
  $qnote= str_replace("[/img]",">",$qnote); 
  $qnote= str_replace("[url]","[ <a href=",$qnote); 
  $qnote= str_replace("[/url]",">Web link</a> ]",$qnote); 
  $qnote= str_replace("#92;","&#92;",$qnote);
  $qname= htmlspecialchars ($_POST['qname']);
  $qemail= htmlspecialchars ($_POST['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) ;
  # 
  $FILE=fopen("$dataroom/".$z[1].".htm", "at");
  fputs($FILE,"<br><table border=0 cellspacing =0 width=90% bgcolor=#ffffdd align=center><tr><td valign=top align=center width=10% bgcolor=#dddddd>");
  fputs($FILE,"ความเห็นที่<br>".$num);
  fputs($FILE,"<td valign=top width=90%>$qnote");
  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"] ."></table>");
  fclose ($FILE) ;
  # if (strlen($qemail) > 8) { mail("$qemail","You post message at lampang_go_th_webboard","$qnote","From: webmaster@lampang.go.th"); }
  echo "<br><center><table border=0 cellspacing =0 width=90% bgcolor=#ffffdd><tr><td>$qnote";
  echo "<tr><td align=right><font color=green><b>ผู้ส่ง :</b> $qname <a href=mailto:$qemail>$qemail</a><! ". $_SERVER["REMOTE_ADDR"] ."><br>";
  echo " $date</font></table><br><a href=? target=_self>กลับหน้าหลัก</a></center>";
}
}
# ===============================
function secure_code_r() {
  global $dataroom;
  $z = split("=",$_SERVER["QUERY_STRING"]);
  # $z = split("=",$_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 = split("view=",$ar[$i]);    
      $z = split("'",$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>เว็บเพจหน้านี้สำหรับผู้ดูแลเท่านั้น
<tr><td>รหัส secure <img src=?action=secure_code>=&gt;<td><input name=securecode size=10>นำตัวอักษร สีขาวบนพื้นแดง มาป้อนในช่องนี้
<tr><td>$webmaster_password =&gt;<td><input type=password name=webmaster_password size=10>
<tr><td colspan=2><input type=submit value=ยืนยันการลบกระทู้></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>เว็บเพจหน้านี้สำหรับผู้ดูแลเท่านั้น
<tr><td align=right>รหัส secure <img src=?action=secure_code>=&gt;<td><input name=securecode size=10>นำตัวอักษร สีขาวบนพื้นแดง มาป้อนในช่องนี้
<tr><td align=right>edit_topic_password =&gt;<td><input type=password name=edit_topic_password size=10>
<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>
<tr><td colspan=2 align=center><input type=submit value=ยืนยันการแก้ไขกระทู้></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>สำหรับเจ้าหน้าที่ สพท.พิจิตร เขต 1
<td>ชื่อผู้เจ้าหน้าที่<td><input name=puser>
<td>รหัสผ่าน<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;
if ($show_header == "yes") {
echo '<html><head>
<meta http-equiv=content-type content="text/html; charset=windows-874">
<meta name=keywords content="web,www,board,opinion,north,siam,thai,government,khelang,travel,tourist,idea,exchange">
<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>
';
echo "<center><font size=6>$title</font><br>";
}
}
# ===============================
function text_footer() {
global $footer1,$footer2,$footer3,$show_footer;
if ($show_footer == "yes") 
echo $footer1,$footer2,$footer3;
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,"1");
fclose ($FILE);
echo '<meta http-equiv=refresh content="5;url=?pg=1"><center>โปรมนี้ถูกติดตั้ง โดยการสร้างห้อง ';
echo $dataroom;
echo 'ในห้องนี้เพื่อเก็บข้อมูล<br>สร้างแฟ้ม topic.htm ไว้เก็บข้อมูล<br>สร้างแฟ้ม number.txt ไว้เก็บเลขกระทู้ล่าสุด';
echo '<hr color=red>โปรดรอประมาณ 5 วินาที<br>เพื่อเข้าสู่ <a href=?pg=1>หน้าแรก</a> ของระบบ';
}
?>
จำนวน : 633 บรรทัด
าษาเฮชทีเอ็มแอล (HTML = HyperText Markup Language) คือ ภาษาคอมพิวเตอร์ที่ออกแบบมาเพื่อใช้ในการสร้างเว็บเพจที่เรียกดูผ่านทางเว็บเบราว์เซอร์ (Web Browser) เริ่มพัฒนาโดย ทิม เบอร์เนอรส์ ลี (Tim Berners Lee) ในปัจจุบัน HTML ล่าสุดคือ รุ่น 5 เป็นมาตรฐานหนึ่งของ ISO ซึ่งจัดการโดย World Wide Web Consortium (W3C) ในปัจจุบัน ทาง W3C ผลักดัน รูปแบบของ HTML แบบใหม่ ที่เรียกว่า XHTML รุ่นแรกคือ 1.0 (ม.ค.2543) ซึ่งมีโครงสร้างเป็นแบบ XML (eXtensible Markup Language)
าษาพีเอชพี (PHP Language) คือ ภาษาคอมพิวเตอร์ประเภทโอเพนท์ซอร์ท (Open Source Computer Language) สำหรับพัฒนาเว็บเพจแบบไดนามิก เมื่อเครื่องบริการได้รับคำร้องจากผู้ใช้ก็จะส่งให้กับ ตัวแปลภาษา ทำหน้าที่ประมวลผลและส่งข้อมูลกลับไปยังเครื่องของผู้ใช้ที่ร้องขอ ในรูปเอชทีเอ็มแอล ภาพ หรือแฟ้มดิจิทอลอื่นใด ลักษณะของภาษามีรากฐานคำสั่งมาจากภาษาซี เป็นภาษาที่สามารถพัฒนาให้ใช้งานแบบโต้ตอบกับผู้ใช้ได้
าษาไพทอน (Python Language) คือ ภาษาคอมพิวเตอร์ประเภทโอเพนท์ซอร์ท (Open Source Computer Language) สำหรับพัฒนาแอพพลิเคชั่นโดยไม่ยึดติดกับแพลตฟอร์ม (Platform) และใช้ในงานได้หลายประเภท ทั้งใช้ในการประมวลผลผ่านคอมมานด์ไลน์ หรือเป็นเว็บเพจแบบไดนามิก เมื่อเครื่องบริการได้รับคำร้องจากผู้ใช้ก็จะส่งให้โค้ดให้กับตัวแปลภาษา เพื่อทำหน้าที่ประมวลผลและส่งข้อมูลกลับไปยังเครื่องของผู้ใช้ที่ร้องขอ ในรูปข้อความ เอชทีเอ็มแอล ภาพ หรือแฟ้มดิจิทอลอื่นใด ลักษณะของภาษามีรากฐานคำสั่งมาจากภาษาซี เป็นภาษาที่สามารถพัฒนาให้ใช้งานแบบโต้ตอบกับผู้ใช้ได้ จุดที่แตกต่างกับภาษาอื่น คือ การรวบรวมจุดเด่นของแต่ละภาษามารวมเข้าด้วยกัน
อสคิวแอล (SQL = Structured Query Language) คือ ภาษาสอบถามข้อมูล หรือภาษาจัดการข้อมูลอย่างมีโครงสร้าง มีการพัฒนาภาษาคอมพิวเตอร์ และโปรแกรมฐานข้อมูลที่รองรับมากมาย เพราะจัดการข้อมูลได้ง่าย เช่น MySQL, MariaDB, MsSQL, PostgreSQL หรือ MS Access เป็นต้น สำหรับโปรแกรมฐานข้อมูลที่ได้รับความนิยมคือ MySQL หรือ MariaDB เป็น Open Source ที่ใช้งานได้ทั้งใน Linux และ Windows
วัสดีชาวโลก (Hello World) คือ ผลลัพธ์ครั้งแรกที่นักพัฒนาโปรแกรมนิยมเลือกใช้แสดงผลในโปรแกรมแรกที่เขียนขึ้นเพื่อทดสอบการทำงาน ข้อความนี้ทำให้นึกถึงมนุษย์ต่างดาวที่มาเยือนโลกและกล่าวกับมนุษย์เมื่อพบกันครั้งแรกในภาพยนตร์
ตัวอย่าง Hello World
ปรับปรุงโปรแกรม source.pl : 2565-07-24
rspsocial
Thaiall.com