2007/Dec/25

เก็บไว้อ่านเองครับ...ใครมือใหม่ก็อ่าน... ใครมือเก๋าก็แนะนำได้หากเห็นว่าผิด... หรือมีดีกว่า
ประมาณว่าไม่ได้ฝนสมองมานาน (หลายปีแล้วที่ไม่ได้เขียนเว็บ)

พอดีวันก่อนเจ้านายสั่งให้ทำเว็บ สำหรับป้อนข้อมูล แต่ให้มี User , Password สำหรับผู้ที่เข้าไปแก้ไขด้วย

อันนี้คงไม่ยาก (คิดในใจนะครับ)

เริ่มลงมือไป Download โปรแกรมสำเร็จรูป AppServ (http://www.appservnetwork.com/) เอามาแล้วติดตั้งบนเครื่อง Notebook (อันนี้ติดตั้งไม่ยากเหมือนโปรแกรมทั้วไป Next , Yes , OK ประมาณนั้น ดีจริงๆ) เมื่อติดตั้งแล้วก็ได้ เว็บเซอร์ฟเวอร์ (Apache) , ฐานข้อมูล (MySQL) , โปรแกรมภาษา PHP

เมื่อได้แล้วก็มาลองทำการสร้าง Form เพื่อ Logon ชื่อ login.php

// <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
// <html xmlns="
http://www.w3.org/1999/xhtml">
// <head>
// <meta http-equiv="Content-Type" content="text/html; charset=TIS-620" >
// <title>Input Form-Login</title>
// </head>
// <body>
// <form id="from_input" name="from_input" method="post" action="login_check.php">
//  <label for="textfield">Username : </label>
// <input type="text" name="user" id="name" >
// <br />
//  <label for="label2"><br /> password : </label>
//  <input type="password" name="pass" id="pass" >
//  <br />
//  <label for="Submit"></label>
//  <input type="submit" name="Submit" value="Submit" id="Submit" >
//  <label for="label3"></label>
//  <input type="reset" name="reset" value="Reset" id="label3" >
// </form>
// </body>
// </html>

ต่อมาก็สร้างเพจชื่อ login_check.php เพื่อตรวจสอบรหัสผ่าน

// <?
// $user=$_POST[user];
// $pass=$_POST[pass];
// //echo $user ." ".$pass ;
// if ($user =="sridetch" and $pass =="abc123")  {
// session_start();
// $_SESSION[sess_userid]=session_id();
// header("Location: page_1.php");
//   }  
// else 
// {
//  echo "<H3> Error : Username หรือ Password ไม่ถูกต้อง </H3>";
//  exit();
// }
// ?>


เมื่อการตรวจสอบข้อมูลที่ป้อนเข้ามาถูกต้อง ก็ไปเปิดเพจหน้าต่อไปที่ชื่อ page_1.php โดยที่จะมีกระบวนการสร้าง Session ชื่อ sess_userid ขึ้นมาเพื่อใช้ตรวจสอบว่าได้ผ่านการ Login มาถูกต้อง แต่ถ้าไม่ถูกก็จะแสดงข้อความว่า Error : Username หรือ Password ไม่ถูกต้อง

ในหน้าต่าง ของเพจต่อ ๆ ไป ก็จะใส่ Script นี้ไว้ที่ด้านบน

//<?
// session_start();
// if ($_SESSION[sess_userid] <> session_id()) {
// header("Location: session_form_input.php"); exit(); 
// } 
// ?>

เพื่อทำการดักตรวจสอบว่าข้อมูล Session ถูกต้องมีการเก็บค่าตัวแปร sess_userid ไว้จริงหรือไม่ หากมีจริงก็ออกไปทำงานต่อจาก Script นี้ แต่หากข้อมูลไม่ถูกต้อง $_SESSION[sess_userid] <> session_id() ก็ให้กลับไปหน้าต่าง login.php

ส่วนหากต้องการทำลาย Session ก็ให้ทำ Link ไปที่ ไฟล์ logout.php ที่มี Script ดังนี้

// <?
// session_start();
// session_destroy();
// header("Location: login.php");
// ?>

จบกระบวนการ... Session ง่าย ๆ ครับ

ปล. ก่อนที่จะจบเนื่องจากสมัยก่อนการรับค่าตัวแปรจาก Form หรือ url จะใช้แค่คำสั่ง $id ก็จะได้ค่าตัวแปรแล้ว แต่ปัจจุบันมีเรื่องความปลอดภัยเข้ามามากขึ้น ทาง php.net ได้ประกาศมาตรฐานไว้หลายปีก่อนแล้ว อ่านรายละเอียดได้ที่ http://th.php.net/manual/en/security.globals.php ซึ่งแนะนำให้ทำการ Register Global = off ไว้ เพื่อป้องกันการโดนโจมตีผ่าน script หลาย Server ไม่สามารถรับตัวแปรตามปกติได้
ดังนั้นหากต้องการรับตัวแปรจาก Form ก็ให้ใช้ $_POST['id'] แต่ถ้าต้องการรับตัวแปรจาก url ก็ให้ใช้ $_GET['id']  ต้องขอบคุณทีมงาน naxza ทีแนะนำครับ สามารถอ่านเพิ่มเติมได้ที่  http://www.naxza.com/hosting_article_21-10_18-00-41.php

edit @ 24 Dec 2007 09:30:33 by BigTUI ^_^"

 

edit @ 25 Dec 2007 10:10:44 by BigTUI ^_^"

ชื่อ: 
เว็บไซต์: 
คอมเมนต์:




smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry
thx so much.

กำลังหาระบบ log in แบบ session พอดีเลยค้าบ
#1  by  ake (202.151.186.15) At 2008-05-14 10:38, 
อธิบายเข้าใจมากเลยค่ะ จะทำเกี่ยวกับ session พอดีเลยค่ะ
#2  by   (119.42.73.152) At 2008-07-24 11:47, 

<< Home