thaiall logomy background
coding : memmysql.php.
my town
Source : Perl | PHP | ASP | JSP | HTML | HTML5 | JavaScript | Java | COBOL | C++ | MS Access | VBNet | VB | Python | โค้ดดี
File : memmysql.php. ID : 9121
Skin : Default | Sons-of-obsidian | Sunburst | Highlighter | Full
<?php
ini_set('display_errors', 'Off');
session_start();
/*
Script_name : memmysql.php
Source_code : http://www.thaiall.com/perlphpasp/source.pl?9121
Version 2.2560-08-23
###########################
Update Description
- รุ่นนี้ยังไม่ได้ป้องกัน sql injection
- แสดงสถานะการใช้งานของ admin หาก on อยู่
- เปลี่ยนจาก mysql แบบเดิม เป็น mysqli
- ระบบนี้มี 3 หน้า คือ Admin page (Tabel Creating), Registration form, Member Listing
1. หน้า Admin ที่ http://localhost/memmysql.php?action=admin
2. หน้ากรอกข้อมูลจากผู้ใช้  ที่ http://localhost/memmysql.php
3. หน้าแสดงรายชื่อผู้กรอกข้อมูล ที่ http://localhost/memmysql.php?action=show
- แชร์ผ่าน gist ที่ https://gist.github.com/thaiall/e90d045872da02aae5b68c733d8dcd08
########################### */

/* Section 1 : Configuration */
$host     = "localhost";
$db       = "test";
$tb       = "mem";
$user     = "root";
$password = "";
$admin_password = "ad4Hn5sLvADxg"; // Default password = "p" for ?action=admin
$create_table ="CREATE TABLE mem (";
$create_table .="id INT NOT NULL AUTO_INCREMENT ,";
$create_table .="sex VARCHAR( 50 ) NOT NULL ,";
$create_table .="name VARCHAR( 50 ) NOT NULL ,";
$create_table .="surname VARCHAR( 50 ) NOT NULL ,";
$create_table .="birthday VARCHAR( 50 ) NOT NULL ,";
$create_table .="age VARCHAR( 10 ) NOT NULL ,";
$create_table .="degree VARCHAR( 100 ) NOT NULL ,";
$create_table .="major VARCHAR( 100 ) NOT NULL ,";
$create_table .="organization VARCHAR( 100 ) NOT NULL ,";
$create_table .="position VARCHAR( 100 ) NOT NULL ,";
$create_table .="addressw VARCHAR( 100 ) NOT NULL ,";
$create_table .="addressh VARCHAR( 100 ) NOT NULL ,";
$create_table .="tel VARCHAR( 30 ) NOT NULL ,";
$create_table .="fax VARCHAR( 30 ) NOT NULL ,";
$create_table .="email VARCHAR( 40 ) NOT NULL ,";
$create_table .="status VARCHAR( 100 ) NOT NULL ,";
$create_table .="applydate VARCHAR( 30 ) NOT NULL ,";
$create_table .="PRIMARY KEY ( id )";
$create_table .=")";
// https://www.w3schools.com/php/php_mysql_create_table.asp

/* Section 2 : Variable */
srand((double)microtime()*1000000);
$rnd = rand(1000,9999);
$page = 1;
$lineperpage = 300;
$sort = "เลขที่ใบสมัคร";

/* Section 3 : text_message */
$main_header = '<html><head><title>ระบบสมาชิก</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
<meta name=keywords content="apply,list,member,admin">
<meta name=description content="Member System">
<style type=text/css>
A:link {COLOR:#FF0000; TEXT-DECORATION: none; font-family: microsoft sans serif;}
A:visited {COLOR:#800000; TEXT-DECORATION: none; font-family: microsoft sans serif;}
body {font-family: microsoft sans serif; font-size: 10pt}
td {font-family:microsoft sans serif; font-size: 10pt}
</style>
</head>
<body text=black bgcolor=#ddffff leftMargin=0 topMargin=0 marginheight=0 marginwidth=0><center>';
$header = "แบบฟอร์มการสมัครเข้ารับการฝึกอบรม<br/>เพื่อคัดเลือกเป็นผู้ประเมินภายนอก (ระดับการศึกษาขั้นพื้นฐาน)";
$change_status = "<center><table bgcolor=#ddffdd style='margin-left:auto;margin-right:auto;'><form action=? method=get>
<tr><td align=center>เลขที่ใบสมัคร (ไม่มี YN-)</td><td><input name=id></td></tr>
<tr><td align=center>สถานะใหม่ของสมาชิก</td><td><input name=status></td></tr>
<input name=action value=update type=hidden>
<tr><td colspan=2 style='text-align:center'><input type=submit value='เปลี่ยนสถานะ'></td></tr></form></table>";
$programmer = "<br/>โปรแกรมเมอร์ : บุรินทร์ รุจจนพันธุ์<br/>Source Code: http://www.thaiall.com/source";
if (isset($_SESSION["admin_password"]) && strlen($_SESSION["admin_password"]) > 0) $admin_stat ="on"; else $admin_stat ="off";
$footer ="<center><a href=?>Back to Registration form</a><br/>admin : $admin_stat</body></html>";

/* Section 4 : Main Activity */
echo $main_header;
if (isset($_GET['page'])) { $page = $_GET['page']; }
if (isset($_GET['sort'])) { $sort = $_GET['sort']; }
if (isset($_REQUEST['admin_user'])) {
  $pass_get = crypt($_POST{'admin_password'},$_POST{'admin_user'});
  if ($pass_get == $admin_password) {
    $_SESSION["admin_password"] = $pass_get;
    echo "Welcome<br/>Admin status : on<br/><a href=?action=show>Member Listing</a> :: <a href=?admin_user=admin>Sign Out</a><hr color=red />";
    connect_db();
    if ($connect->query($create_table) === TRUE) {
      echo "ไม่พบตารางข้อมูล<br/>ดังนั้นโปรแกรมได้สร้างตาราง <b>$tb</b> ในฐานข้อมูล <b>$db</b>จาก SQL ต่อไปนี้ให้อัตโนมัติ<br/><font color=red>$create_table</font><br/><font color=blue>สรุปได้ว่า ขณะนี้ท่านน่าจะมีตารางสำหรับเก็บข้อมูลเรียบร้อยแล้ว ..  ถ้าไม่มีข้อผิดพลาดอื่น</font>";
    } else {
      $result = $connect->query("select * from $tb");
      echo "พบข้อมูลจำนวน ". $result->num_rows ." รายการ";
    }
    $connect->close();
    echo "<hr color=red />";
    echo $change_status;
  } else {
    $_SESSION["admin_password"] = "";
    echo '<meta http-equiv=refresh content="0;url=?action=admin">';
  }
  echo "<hr color=red />" . $pass_get;
  echo "<br/>ถ้าต้องการเปลี่ยนรหัสผ่านใหม่ ให้กรอกรหัสผ่านใหม่ในช่องกรอกรหัสผ่าน<br/>แล้วจึงนำ code ที่เข้ารหัสแล้ว ด้านบนนี้ไปแทนที่ในตัวแปร ". '$admin_password' . $footer;
  exit;
}

/* Section 5 : Registration form */
if (!isset($_GET{'action'}) && !isset($_POST{'name'}) && !isset($_POST{'username'})) {
  connect_db();
  echo "<table bgcolor=#dddddd width=750>
<form action='' method=post>
<tr bgcolor=black><td align=center colspan=2><font color=white>$header</td></tr>
<tr bgcolor=#ffffdd><td align=right>นาย/นางสาว/นาง</td><td><input name=sex size=7></td></tr>
<tr bgcolor=#ddffdd><td align=right>ชื่อ</td><td><input name=name size=50> > 2 character</td></tr>
<tr bgcolor=#ffffdd><td align=right>นามสกุล</td><td><input name=surname size=50> > 2 character</td></tr>
<tr bgcolor=#ddffdd><td align=right>วัน เดือน ปีเกิด</td><td><input name=birthday size=20></td></tr>
<tr bgcolor=#ffffdd><td align=right>อายุ</td><td><input name=age size=5></td></tr>
<tr bgcolor=#ddffdd><td align=right>วุฒิการศึกษา</td><td><input name=degree size=70></td>
<tr bgcolor=#ffffdd><td align=right>สาขาวิชา</td><td><input name=major size=70></td></tr>
<tr bgcolor=#ddffdd><td align=right>หน่วยงาน</td><td><input name=org size=70></td>
<tr bgcolor=#ffffdd><td align=right>ตำแหน่ง</td><td><input name=position size=70></td></tr>
<tr bgcolor=#ddffdd><td align=right>ที่อยู่ (สถานที่ทำงาน)</td><td><input name=addressw size=70></td></tr>
<tr bgcolor=#ffffdd><td align=right>ที่อยู่ (ที่ติดต่อได้สะดวก)</td><td><input name=addressh size=70></td></tr>
<tr bgcolor=#ddffdd><td align=right>เบอร์โทรศัพท์</td><td><input name=tel size=30></td></tr>
<tr bgcolor=#ffffdd><td align=right>เบอร์โทรสาร</td><td><input name=fax size=30></td></tr>
<tr bgcolor=#ddffdd><td align=right>อีเมล</td><td><input name=email size=30></td></tr>
<tr bgcolor=#ffffdd><td align=right>รหัสยืนยัน [<font color=red>$rnd</font>]</td><td><input name=secure>
<br/>กรุณาพิมพ์ตัวเลขสีแดง ในช่องด้านบน เพื่อยืนยันการสมัคร</td></tr>
<input name=secureconfirm type=hidden value=$rnd>
<input name=status type=hidden value='รอตรวจสอบ'>
<tr><td colspan=2 align=center><input type=submit Value='ยืนยันการลงทะเบียน'></td></tr>
</form></table>
<table bgcolor=#dddddd width=750><tr><td style='text-align:center;background-color:white;'>
<a href=?action=show>Member Listing</a> :: <a href=?action=admin>Admin Page</a> :: ";
  echo "ขณะนี้เวลา : " . date("Y-m-d H:i:s") . $footer . "</td></tr></table>";
  exit;
}
/* Section 6 : All action */
if (isset($_GET{'action'})) {
  ########## admin ###
  if ($_GET{'action'} == "admin") {
    echo "<table bgcolor=#dddddd>
<form action='' method=post>
<tr><td bgcolor=black colspan=2 style='text-align:center;'><font color=white><b>ระบบจัดการสมาชิก</b></td></tr>
<tr><td>User name</td><td><input name=admin_user value=admin></td></tr>
<tr><td>Password</td><td><input name=admin_password type=password></td></tr>
<tr><td colspan=2 align=center><table><td><input type=submit Value='Sign in'></td></tr>
</form>";
    if ($admin_stat == "on") echo "<tr>
<form action='' method=post><input name=admin_user type=hidden><input name=admin_password type=hidden>
<td bgcolor=gray><input type=submit value='Sign out'></td></form></table></td></tr>";
    echo "</table>" .$footer;
    exit;
  }
  ########## del ###
  if ($_GET{'action'} == "del") {
    if ($_SESSION["admin_password"] == $admin_password && $_GET{'id'} > 0) {
      connect_db();
      $query = "delete from $tb where id =" . $_GET{'id'};
      if ($connect->query($query) === TRUE) {
        echo "Record deleted : Completely";
      } else {
        echo "Delete : fail";
      }
      echo "<br/><a href=?action=show>Back to check</a>";
      $connect->close();
    } else {
      echo "Admin status checking : fail";
    }
    echo $footer;
    exit;
    }
    ########## update ###
    if ($_GET{'action'} == "update") {
    if ($_SESSION["admin_password"] == $admin_password && $_GET{'id'} > 0) {
      $query    = "update $tb set status = '".$_GET{'status'}."' where id =" . $_GET{'id'};
      connect_db();
      if ($connect->query($query) === TRUE) {
        echo '<meta http-equiv=refresh content="0;url=?action=show">';
      } else {
        echo "Updateing : fail";
      }
      $connect->close();
      exit;
    } else {
      echo "Admin status checking : fail";
    }
    echo $change_status . $footer;
    exit;
    }
    ########## show ###
    if ($_GET{'action'} == "show") {
    connect_db();
    $query = "select * from $tb order by id";
    if ($sort == "sortid") { $query = "select * from $tb order by id"; }
    if ($sort == "sortname")  { $query = "select * from $tb order by name, surname"; }
    if ($sort == "sortorg")  { $query = "select * from $tb order by organization desc"; }
    if (isset($_GET{'key'})) {
      $akey = split('[+]',$_GET{'key'});
      if (strlen($_GET{'key'}) > 0)  {
        $query = "select * from $tb where name like '".$akey[0]."%' ";
        if (count($akey) > 1) $query = $query . " and surname like '".$akey[1]."%' ";
        $query = $query . " order by name";
      }
    }
    $result = $connect->query($query);
    $cntall = $result->num_rows;
    if ($cntall > 0) {
      echo "<table width=100%><td align=center bgcolor=black><font color=white>$header</td></table>
<table width=100%><form action='' method=get><td align=center bgcolor=#dddddd>จัดเรียงตาม :
<a href=?action=show&sort=sortid>เลขที่ใบสมัคร</a> |
<a href=?action=show&sort=sortname>ชื่อผู้สมัคร</a> |
<a href=?action=show&sort=sortorg>หน่วยงาน</a> |
<input name=action value=show type=hidden>
<br/>ระบุชื่อและสกุล (เช่น <b>ทองเส้น+ก้อนใหญ่</b> หรือ <b>ทอง</b>) <input name=key width=30><input type=submit value=ค้นหาตามชื่อและสกุล>
</td></form></table>
<table align=center>";
      $lastpage = (($cntall - ($cntall % $lineperpage)) / $lineperpage) + 1;
      echo "<tr bgcolor=#ddffff><td colspan=11>หน้าที่ : ";
      for ($j=1;$j<=$lastpage;$j++) echo " <a href=?action=show&page=$j>$j</a> |";
      echo "</td></tr>";
      echo "<tr bgcolor=#dddddd align=center>
<td width=50>ลำดับ</td>
<td width=50>เลขที่<br/>ใบสมัคร</td>
<td width=50>คำนำ<br/>หน้าชื่อ</td>
<td width=100>ชื่อ</td>
<td width=100>สกุล</td>
<td width=100>หน่วยงาน</td>
<td width=100>วันที่สมัคร</td>
<td width=100>สถานะ <br/>(ตรวจสอบคุณสมบัติ)</td>";
      if (isset($_SESSION["admin_password"])) {
        if ($_SESSION["admin_password"] == $admin_password)
          echo "<td align=center>วันเดือนปีเกิด</td><td align=center>อายุ</td><td align=center>วุฒิการศึกษา</td><td align=center>สาขาวิชา</td><td align=center>ตำแหน่ง</td><td align=center>ที่อยู่(ที่ทำงาน)</td><td align=center>ที่อยู่(ที่ติดต่อได้สะดวก)</td><td align=center>โทรศัพท์</td><td align=center>โทรสาร</td><td align=center>อีเมล</td>";
      }
      echo "</tr>";
    } else {
      echo "ไม่พบข้อมูลที่ค้นหา<br/><a href=?action=show>กลับไปดูรายชื่อใหม่</a>" . $footer;
      exit;
    }
    $i = 1;
    // while($row = $result->fetch_assoc()) { echo $row["id"]; }
    while ($object = $result->fetch_object()) {
      if ($i >= ($page - 1) * $lineperpage && $i <= ($page) * $lineperpage) {
        if ($i % 2 == 0) echo "<tr bgcolor=#ffffdd>"; else echo "<tr bgcolor=#fffffd>";
        if (isset($_SESSION["admin_password"])) {
          if ($_SESSION["admin_password"] == $admin_password) {
            echo "<td><a href=?action=del&id=".$object->id.">ลบ</a> $i </td>";
          } else {
            echo "<td>".$i."</td>";
          }
        } else {
          echo "<td>".$i."</td>";
        }
        echo "<td>YN-".$object->id."</td>";
        echo "<td>".$object->sex."</td>";
        echo "<td>".$object->name."</td>";
        echo "<td>".$object->surname."</td>";
        echo "<td>".$object->organization."</td>";
        echo "<td>".$object->applydate."</td>";
        echo "<td>".$object->status."</td>";
        if (isset($_SESSION["admin_password"])) {
          if ($_SESSION["admin_password"] == $admin_password) {
            echo "<td>".$object->birthday."</td>";
            echo "<td>".$object->age."</td>";
            echo "<td>".$object->degree."</td>";
            echo "<td>".$object->major."</td>";
            echo "<td>".$object->position."</td>";
            echo "<td>".$object->addressw."</td>";
            echo "<td>".$object->addressh."</td>";
            echo "<td>".$object->tel."</td>";
            echo "<td>".$object->fax."</td>";
            echo "<td>".$object->email."</td>";
          }
        }
      }
      $i++;
    }
    echo "<tr bgcolor=#ddffff><td colspan=11>หน้าที่ : ";
    for ($j=1;$j<=$lastpage;$j++) echo " <a href=?action=show&page=$j>$j</a> |";
    echo "</td></tr>";
    echo "<tr bgcolor=#ddffdd><td colspan=11>จำนวนสมาชิก : ".$cntall."$programmer</td></tr>";
    echo "</table></center>";
    $connect->close();
    if($admin_stat == "on") echo $change_status;
  }
  echo  $footer;
  exit;
}
/* Section 7 : Verification for secure code */
if (isset($_POST{'secure'})) {
  echo "<font size=6 color=#000088><br/><br/>";
  if ($_POST{'secure'} != $_POST{'secureconfirm'} || strlen($_POST{'name'}) < 2  || strlen($_POST{'surname'}) < 2) {
    echo "รหัสยืนยันไม่ถูกต้อง หรือกรอกข้อมูลไม่ครบ";
    echo "<br/><a href=?>กลับไปกรอกข้อมูลใหม่</a>";
    exit;
    }
    $query  = "insert into $tb values('";
    $query .= "','" . $_POST{'sex'};
    $query .= "','" . $_POST{'name'};
    $query .= "','" . $_POST{'surname'};
    $query .= "','" . $_POST{'birthday'};
    $query .= "','" . $_POST{'age'};
    $query .= "','" . $_POST{'degree'};
    $query .= "','" . $_POST{'major'};
    $query .= "','" . $_POST{'org'};
    $query .= "','" . $_POST{'position'};
    $query .= "','" . $_POST{'addressw'};
    $query .= "','" . $_POST{'addressh'};
    $query .= "','" . $_POST{'tel'};
    $query .= "','" . $_POST{'fax'};
    $query .= "','" . $_POST{'email'};
    $query .= "','" . $_POST{'status'};
    $query .= "','" . date("Y-m-d H:i:s");
    $query .= "')";
    connect_db();
  if ($connect->query($query) === TRUE) {
    echo "Keep data : completely<br/>Your data will be displayed in last page";
    echo '<meta http-equiv=refresh content="5;url=?action=show">';
  } else {
    echo "Registration : fail";
  }
    $connect->close();
  echo $footer;
    exit;
}
function connect_db() {
  global $connect,$host,$user,$password,$db;
  $connect = new mysqli($host,$user,$password,$db);
  if ($connect->connect_error) {
    die("Connection Database :failed<br/>please contact admin or <a href='?action=admin'>install table</a>". $footer);
  }
}
?>
จำนวน : 333 บรรทัด
าษาเฮชทีเอ็มแอล (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
Thaiall.com