ซื้อขายบ้านมือสอง

วันอังคารที่ 9 ตุลาคม พ.ศ. 2550

การจัดการกับตัวแปร Session





การจัดการกับตัวแปร Session



Session คือ ตัวแปรที่สร้างขึ้นมาเพื่อให้สามารถใช้งานได้ทั้งเว็บไซต์ ไม่ว่าเราจะเปิดไปหน้าไหน ก็ตาม ก็สามารถเรียกใช้งานตัวแปร นั้นๆ ได้


หลักการทำงานของ session หน้า เว็บเพจที่มีการเรียกใช้งาน Session_start(); เมื่อ เว็บเซิร์ฟเวอร์ อ่านพบจะ ทำการระบุโคดหมายเลขประจำ ขึ้นมาให้กับ browser ซึ่งจะถูกเข้ารหัสในรูปแบบของ MD5 เราเรียก id นี้ว่า sessionid แต่ละเครื่อง ก็จะไม่มีทาง ซ้ำกันได้เลย


เมื่อ client ได้ตัว sessionid แล้ว เราก็สามารถอ้างอิงค่า session ไปยังหน้าเว็บเพจ จนกว่า client จะปิดหน้าต่าง browser









เริ่มต้นการใช้งาน session


ในการทำงานทุกครั้งที่เกี่ยวกับ Session เราจะต้อง ประกาศฟังชั่น Session_start(); ก่อนเสมอ เพื่อเป็นการเริ่มต้นใช้งาน session และ ต้องวางไว้ตำแหน่งบนสุดของ page หากไม่ได้ประกาศ session_start(); ไว้บนสุดจะขึ้นข้อความ error



Warning: session_start(): Cannot send session cookie - headers already sent by (output started at D:\!@nuijang\course\php_programming\CD_training\source_study\session_01.php:2) in D:\!@nuijang\course\php_programming\CD_training\source_study\session_01.php on line 3



ฟังชั่นที่เกี่ยวกับ session


หากเราต้องการสร้างตัวแปร session เราจะต้องสร้างโดยการใช้ ฟังชั่นดังนี้


session_register(str ชื่อตัวแปร) = เป็นการลงทะเบียนตัวแปร session


session_unregister( str ชื่อตัวแปร) = เป็นการ ลบ session ตัวนั้นๆ ออก


session_destroy(); = เป็นการทำลายตัวแปร session ทิ้งทั้งหมด


$_SESSION[“ชื่อ session”]; = ตัวแปร super global สำหรับรับค่า session









การสร้างฟอร์ม login โดยใช้ session


การทำงาน จะเป็นดังนี้คือ


1. สร้างไฟล์ session_login01.php เป็นฟอร์ม สำหรับกรอก username และ password


2. สร้างไฟล์ session_login02.php เป็นไฟล์ที่ตรวจสอบการ login ว่า login ถูกต้องหรือไม่ หากถูกต้องให้ ทำการ register session username และไปยังหน้า session_login03 หากไม่ถูกต้องให้ register error เพื่อแสดงสถานะกลับไปย้งหน้า session_login01


3. สร้างไฟล์ session_login03.php เพื่อแสดงข้อความยินดีต้อนรับพร้อมกับเรียกใช้ตัวแปร session แสดงชื่อผู้ที่ login



Example : session_login01.php


<?php


session_start();


session_unregister("username");


echo $_SESSION["err"];


?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<html>


<head>


<title>Untitled Document</title>


<meta http-equiv="Content-Type" content="text/html; charset=windows-874">


</head>


<body>


<form action="session_login02.php" method="post">


<table width="100%" border="0" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC">


<tr bgcolor="#CCCCCC">


<td colspan="2">กรอกข้อมูล</td>


</tr>


<tr bgcolor="#E5E5E5">


<td width="25%">username</td>


<td width="75%"><input name="txtuser" type="text" id="txtuser"></td>


</tr>


<tr bgcolor="#E5E5E5">


<td>password</td>


<td><input name="txtpass" type="text" id="txtpass"></td>


</tr>


<tr bgcolor="#E5E5E5">


<td>&nbsp;</td>


<td><input type="submit" name="cmdsubmit" value="Submit">


<input type="reset" name="cmdreset" value="Reset"></td>


</tr>


</table>


</form>



</body>


</html>




Example : session_login02.php



<?php


session_start();


$admin_user="admin";


$admin_pass="123";



$submit=$_POST["cmdsubmit"];


if (isset($submit)) {


$txtuser=$_POST["txtuser"];


$txtpass=$_POST["txtpass"];


if ($txtuser==$admin_user and $txtpass==$admin_pass) {


session_unregister("err");


$username=$txtuser; // สร้างตัวแปร username ไว้สำหรับเก็บค่า txtuser


session_register("username"); // สร้างตัวแปร session ชื่อ username


header("Location:session_login03.php"); // redirect ไปยังหน้า page 3



}else{


$err = "<font color=\"#ff0000\">Login ไม่ ถูกต้อง กรุณา login ใหม่</font>";


session_register("err");


header("Location:session_login01.php");


}


}


?>



Example : session_login03.php


<?php


session_start();


echo "<h3>Welcome To ".$_SESSION["username"]."</h3>";


?>

ไม่มีความคิดเห็น: