2/07/2554

การทำระบบ Login

1. วัตถุประสงค์
                เพื่อกำหนดสิทธิ์ในการใช้งานของระบบ มี 2 ประเภท คือ ผู้ดูแลระบบ(admin) และผู้ใช้(user) ซึ่งจำแนกหน้าที่ด้งนี้
1.1  ผู้ดูแลระบบ มีความสามารถ คือ
a.       ดูข้อมูลแผนก(Dept)  ข้อมูลพนักงาน(Emp)
b.      เพิ่ม ลบ แก้ไข ข้อมูลแผนก(Dept)
c.       เพิ่ม ลบ แก้ไข ข้อมูลพนักงาน(Emp)
ฯลฯ

1.2  ผู้ใช้ มีความสามารถ คือ
d.      ดูข้อมูลแผนก(Dept)  ข้อมูลพนักงาน(Emp)
e.       แก้ไขประวัติของตัวเอง
ฯลฯ

2. ออกแบบฐานข้อมูล DataEmployee และตาราง ดังนี้
ตาราง Dept
ตาราง Emp
                2.1 ออกแบบระบบการใช้งาน โดยใช้ Field
                                a. บัญชีชื่อผู้ใช้ (username) ใช้ Field  คือ ename
                                b.  รหัสผ่าน(password) ใช้ Field คือ password ควรมีการเข้ารหัส md5() ขนาด 32 ตัวอักษร เพื่อความปลอดภัย
                                c.  สถานะ(status) ใช้ Field คือ levelusing  ดังนี้ a คือ admin  และ u คือ user
                2.2 ออกแบบหน้าจอ
                                a. หน้าจอ Login ดังนี้ (login.php และ checklogin.php)
                                               

 
 


ตัวอย่างโปรแกรม : login.php
     session_start();
     session_unregister("empno");
     session_unregister("ename");
     session_unregister("levelusing");
?>

frmLogin
" name="frmLogin" method="post" action="logincheck.php" onSubmit="return checkField();">
 
    <tr bgcolor="#CCFFFF">
     
    tr>
    <tr>
     
     
    tr>
    <tr>
     
     
    tr>
    <tr>
     
     
    tr>   
 
colspan="2" align="left" valign="middle">Login : valign="middle" bgcolor="#CCFFFF">ชื่อผู้ใช้ valign="middle" bgcolor="#CCFFCC">
        txtusername"  />
     
valign="middle" bgcolor="#CCFFFF">รหัสผ่าน valign="middle" bgcolor="#CCFFCC">
        txtpassword"  />
     
valign="middle" bgcolor="#CCFFFF">&nbsp; valign="middle" bgcolor="#CCFFCC">
        เข้าสู่ระบบ" />
        ยกเลิก" />
     

b. ออกแบบหน้าจอ เมนู menu_addmin.php
  ยินดีต้อนรับ(ชื่อ)
เนื้อหา
1.แผนก(Dept)

แสดงข้อมูลพนักงานทุกแผนก



ประกาศข่าว
   1.1 เพิ่ม
   1.2 ปรับปรุง(แก้ไข-ลบ)
2.พนักงาน(emp)
   2.1 เพิ่ม
   2.2 ปรับปรุง(แก้ไข-ลบ)
3. ประกาศข่าว
4. ออกจากระบบ


c. ออกแบบหน้าจอ เมนู menu_user.php
                  ยินดีต้อนรับ(ชื่อ)
เนื้อหา
1.แผนก(Dept)

แสดงข้อมูลพนักงานทุกแผนก

2.พนักงาน(emp)
3. แก้ไขประวัติ

4. ออกจากระบบ

                2.3. ความรู้พื้นฐานของนักศึกษา
                                a. สร้างฐานข้อมูล  สร้างตาราง เพิ่ม แก้ไข ลบข้อมูล (ภาษา SQL)
                                b. ออแบบหน้าจอด้วย Macromedia Dream  ภาษา HTML
                                c. การเขียนโปรแกรมภาษา PHP
                                      1. การเขียนโปรแกรมติดต่อฐานข้อมูล  (connectdata.php)
$host="localhost";
$username="root";
$password="1234";  
$db="dataemployee";
$conn  = mysql_connect($host, $username, $password) or die("can not connect Data base");
mysql_db_query($db,'set names tis620') die("can not select Database");
mysql_select_db($db,$conn);

                                        2. ความรู้เรื่อง Session เก็บค่าตัวแปรในฝั่ง Server ในการแลกเปลี่ยนข้อมูลกันระหว่างผู้ใช้กับเว็บเพจ                        
ฟังก์ชัน
ความหมาย
Session_Start
กำหนดค่าเริ่มต้นใช้งาน Session ประกาศตัวแปร ซึ่จะนำไปใช้งานในเพจใดๆ ตราบใดที่ Session ยังไม่หมดอายุ
Session_Register()
ลงทะเบียนทำให้ตัวแปรกลายเป็นตัวแปร Session เพื่อกำหนดให้ PHP รักษาค่าตัวแปร
Session_Unregister
ยกเลิกการ Register ตัวแปร Session
Session_Destory()
ล้างข้อมูลทั้งหมดของ Session ปัจจุบัน
ตัวอย่างใช้งาน  ไฟล์ checklogin.php
session_start();
  if (isset($_POST['txtusername']) && isset($_POST['txtpassword']) && !empty($_POST['txtusername']) && !empty($_POST['txtpassword']))
  {
     require_once('../connectdata.php');
    $sql = "select * from emp where (ename ='".$_POST['txtusername']."') AND (password ='".md5(trim($_POST['txtPassword']))."')" ;
                       
                $result = mysql_query($sql);
                $num=mysql_num_rows($result);
                $rs = mysql_fetch_array($result);
                if($num)
                  { 
                               $empno = $rs['empno'];
                                $ename = $rs['ename'];
                                $level = $rs['levelusing'];
                                       
                                session_register("empno");
                                session_register("ename");
                                session_register("level");
                                         
                    if($rs['levelusing']  == 'a')
                                   header("Location:menu_admin.php");
                                else
                                  header("Location:menuu_ser.php");
                  }    
                  else
                                echo "";   
   }          
ตัวอย่างการใช้งาน : menu_admin.php
       session_start(); 
       if (isset($_SESSION['empno']) && ($_SESSION['levelusing'] == 'a'))
       header("Location:login.php");
?>
  <tr>
    <td>ชื่อ  echo $_SESSION[empno] ; ?>  $_SESSION[ename] ?>
  tr>
  <tr>
   
  tr>
  <tr>
   
  tr>
  <tr>
   
  tr>
แผนก เขียนคำสั่ง PHP <a href="logout.php">Logout</a>
ตัวอย่างการใช้งาน : Logout.php
php
                session_start();
                if (isset($_SESSION['empno'])) unset($_SESSION['empno']);
                if (isset($_SESSION['ename'])) unset($_SESSION['ename']);
                if (isset($_SESSION['levelusing'])) unset($_SESSION['levelusing']);
                session_destroy();
                header("Location:login.php");
?>
               

3. ตัวอย่างการเขียนโปรแกรมแบบ OOP+PHP ในการติดต่อฐานข้อมูล
ตัวอย่าง Class ไฟล์ชื่อ ClassLogin.php
php
     session_start();
     ob_start();
   
    class dbconnect{
                var $h = "localhost";
                var $db = "dataemployee";
                var $u = "root";
                var $p = "1234";
                var $c;
                var $rs;

                function Connection()
                 {  $this->c = mysql_connect($this->h, $this->u, $this->p);
                       if (!$this->c)
                          { die('Could not connect : ' . mysql_error()); }
                             mysql_select_db($this->db, $this->c);
                             mysql_query("SET NAMES 'tis620' ",$this->c);
                }             
               
                function Execute($sql)
                 {  $this->rs = mysql_query($sql,$this->c);
                     if(!$this->rs) die(" Error Select Statement :: $sql");
                        return mysql_fetch_array($this->rs);
                 }
                       
                 function login($username ,$password)
                 {  $sql = "select * from emp where ename='" . $username . "' and password ='" . $password . "'";
                     $rs = $this->Execute($sql);
                     if (count($rs)!=1)  //  มีข้อมูล
                      {       $_SESSION['empno'] = $rs['empno'];
                               $_SESSION['ename'] = $rs['ename'];
                               $_SESSION['levelusing'] = $rs['levelusing'];  
                              switch( $rs['levelusing'])
                              {      case"a" :  
                                                              header("Location:menu_admin.php");   break ;
                                         case "u" : 
                                                             header("Location:http:menu_user.php"); break ;
                                }
                     } 
                else
                     echo "<br> Account Not  Access ";
               }
   
             function Disconnect()
                  {            return mysql_close(); } 
                 
    } // End Class
?>
ตัวอย่างการใช้งาน ไฟล์ Login.php
                require_once(ClassLogin.php)
             $conn = new dbconnect();
                $conn->Connection();
                $conn->login('ADAMS','1234'); // function login($username ,$password)
?>

0 ความคิดเห็น:

แสดงความคิดเห็น