วันเสาร์ที่ 6 ธันวาคม พ.ศ. 2557

กรณีศึกษาระบบสมาชิก (Member System)

8. กรณีศึกษาระบบสมาชิก (Member System)
- วางแผน และจัดทำระบบ Admin Log In และ Log Out
- สร้างฐานข้อมูล และตาราง ที่ออกแบบมาสำหรับเก็บข้อมูลสมาชิก
- เขียนฟอร์มรับข้อมูล และโปรแกรมนำข้อมูลไปเก็บในฐานข้อมูล
- เขียนโปรแกรมแสดงข้อมูล
- เขียนฟอร์มรับคำสั่งลบ และโปรแกรมสำหรับ ลบข้อมูล
- การเขียนโปรแกรมคือ การทำงานตามที่ผู้ออกแบบระบบออกแบบไว้

ex.801

apply.htm
ฟอร์มสมัครของผู้ใช้ และเข้าระบบ Administrator
<body>
<form action=apply.php method=post>
Name : <input name=mname><br>
Surname : <input name=msurn><br>
Address : <input name=maddr><br>
<input type=submit>
</form>
<form action=session.php method=post>
Admin Password :
<input name=admin type=password><br>
<input type=submit value='Log in'>
</form>
<form action=session.php method=post>
<input type=submit value='Log Out'>
</form>
ตัวอย่างผลลัพธ์ หรืออธิบาย
Name :
Surname :
Address :
Admin Password :

ex.802

session.php
ตรวจรหัส Admin และเก็บสถานะ Admin
<?
session_start();
$_SESSION['admin'] = "";
if (isset($_POST['admin'])) {
  if ($_POST['admin'] == "p")
    $_SESSION['admin'] = "ok";
}
echo $_SESSION['admin']."<br>";
echo date("d/m/Y H:i:s")."<br>";
?>
<a href=crtdbm.php>crtdbm.php</a>
<a href=display.php>display.php</a>
<a href=apply.php>apply.php</a>
ตัวอย่างผลลัพธ์ หรืออธิบาย
# สำหรับผู้ดูแลระบบ ส่งรหัสผ่านเข้ามาตรวจ
# รหัสที่ถูกต้องตามตัวอย่างคือ p

ex.803

crtdbm.php
สร้างฐานข้อมูล ถ้าเป็น Admin
<?
session_start();
if ($_SESSION['admin'] != "ok") exit;
$db = "mem";
$tb = "member";
$host = "127.0.0.1:3306";
$uname = "admin"; // root
$passwd = "p";
if (!$connect=mysql_connect($host,$uname,$passwd)){
 echo 'Could not connect to mysql';
 exit;
}
$s = "create database $db";
if (!$result=mysql_query($s,$connect))
  echo "$s : error<br>";
else {
  echo "$s : ok<br>";
  $s="create table $tb (";
  $s.="mid int primary key not null auto_increment,";
  $s.="mname char(40),msurn char(40),maddr char(40))";
  if (!$result=mysql_db_query($db,$s))
    echo "$s : error<br>";
  else
    echo "$s : ok<br>";
}
mysql_close($connect);
?>
ตัวอย่างผลลัพธ์ หรืออธิบาย
# สร้างฐานข้อมูลชื่อ mem
# สร้างฐานข้อมูลชื่อ member
# ไม่จำเป็นต้องใช้ตัวแปรชื่อ $sql จะใช้ $s ก็ได้

ex.804

apply.php
ผู้ใช้สมัครสมาชิก
<?
$db = "mem";
$tb = "member";
$host = "127.0.0.1:3306";
$uname = "admin"; // root
$passwd = "p";
if (!$connect=mysql_connect($host,$uname,$passwd)){
 echo 'Could not connect to mysql';
 exit;
}
if (isset($_POST["mname"]) && isset($_POST["mname"])){
  $sql="insert into $tb values('',";
  $sql.="'".$_POST["mname"]."',";
  $sql.="'".$_POST["msurn"]."',";
  $sql.="'".$_POST["maddr"]."')";
  if (!$result=mysql_db_query($db,$sql))
    echo "$sql : error<br>";
  else {
    echo "$sql : ok<br>";
  }
}
mysql_close($connect);
?>
<br><a href=apply.htm>apply.htm</a>
ตัวอย่างผลลัพธ์ หรืออธิบาย
# รับข้อมูลจากฟอร์มใน apply.htm
# เพิ่มข้อมูลสมาชิกในตาราง

ex.805

display.php
แสดงข้อมูล ถ้าเป็น Admin
<?
session_start();
if ($_SESSION['admin'] != "ok") exit;
$db = "mem";
$tb = "member";
$host = "127.0.0.1:3306";
$uname = "admin"; // root
$passwd = "p";
if (!$connect=mysql_connect($host,$uname,$passwd)){
 echo 'Could not connect to mysql';
 exit;
}
echo "Display Members : <ol>";
$query="select * from $tb order by mid";
if($result = mysql_db_query($db,$query)) {
  while ($object = mysql_fetch_object($result)) {
    echo "<li>" . $object->mid . "<br>";
    echo $object->mname . "<br>";
    echo $object->msurn . "<br>";
    echo $object->maddr . "<br>";
    echo"<a href=del.php?mid=".$object->mid.">x</a>";
  }
  echo "</ol>Total records:".mysql_num_rows($result);
}
mysql_close($connect);
?>
<br><a href=apply.htm>apply.htm</a>
ตัวอย่างผลลัพธ์ หรืออธิบาย
Display Members :
  1. 3
    tom
    jojo
    thailand
    x
  2. 5
    บุรินทร์
    รุจจนพันธุ์
    ลำปาง
    x
Total records : 2


ex.806

del.php
ลบข้อมูลตาม mid ถ้าเป็น Admin
<?
session_start();
if ($_SESSION['admin'] != "ok") exit;
$db = "mem";
$tb = "member";
$host = "127.0.0.1:3306";
$uname = "admin"; // root
$passwd = "p";
if (!$connect=mysql_connect($host,$uname,$passwd)){
 echo 'Could not connect to mysql';
 exit;
}
if (isset($_GET["mid"])) {
  $sql="delete from $tb where mid =".$_GET["mid"];
  if (!$result=mysql_db_query($db,$sql))
    echo "$sql : error<br>";
  else {
    echo "$sql : ok<br>";
  }
}
mysql_close($connect);
?>
<br><a href=apply.htm>apply.htm</a>
ตัวอย่างผลลัพธ์ หรืออธิบาย
# รับข้อมูลจากฟอร์มใน apply.htm
# ลบข้อมูลสมาชิกในตาราง ตาม mid