PHP session / Login Professional Home Page :PHP เกียรติพงษ์ ยอดเยี่ยมแกร
Session Control ระบบการติดตามผู้ใช้ ให้ติดต่อกับตัวให้บริการเว็บด้วยการเชื่อมต่อเพียงหนึ่งเดียว การทำงานจะสนับสนุนด้วย Session ID : ซึ่งเป็นเลขสุ่มสร้างโดย PHP เก็บไว้ที่ Server และเครื่องผู้ใช้ และจะคงอยู่ตามอายุการใช้งาน
Session session_start(); session_register(“ ตัวแปร Session “); ฟังก์ชั่นจัดเก็บค่า Session ซึ่งมีผลให้ PHP สุ่มค่าการจัดเก็บ เช่น session_register(“valid_user”); นำค่าตัวแปร valid_user เก็บไว้ใน session variable พร้อมกับ session id session_is_registered(“ตัวแปร Session”); ฟังก์ชั่นตรวจสอบว่า ตัวแปร Session นั้นได้ทำการ register ไปหรือยัง session_is_registered(“valid_user”); ผลที่ได้คือ True หรือ False
Session session_unregister(“ ตัวแปร Session “); session_destroy(); เช่น session_unregiste(“valid_user”); session_destroy(); ตัดการเชื่อมต่อด้วย session unset(“ตัวแปร”); ล้างค่าตัวแปร ยกเลิกการใช้ตัวแปรออกจากหน่วยความจำ
Session $HTTP_SESSION_VARS[“ตัวแปร Session”] session_unset(); เช่น $user = $HTTP_SESSION_VARS[“valid_user”]; session_unset(); ยกเลิกการใช้งาน session ทั้งหมด ตัวแปร session ทุกตัวจะถูกยกเลิก
กรณีศึกษา Login .. Logout <form name="form1" method="post" action="login_process.php"> <table width="500" border="1" cellpadding="0" cellspacing="1" bordercolor="#333333"> <tr> <td bordercolor="#FFFFFF"><table width="500" border="0" cellspacing="1" cellpadding="3"> <tr align="right" bgcolor="#00CCFF"> <td colspan="2">Login เข้าสู่ระบบ</td> </tr> <td width="160">User Name /td> <td width="337"><input name="user" type="text" id="user2"></td> <td>Password/td> <td><input name="password" type="password" id="password2"></td> <td> </td> <td><input type="submit" name="Submit" value="Login"></td> </table></td> </table> </form>
Create include File ชื่อ staff.php <? $adminuser = ‘ADMIN’; $adminpass = ‘123456’; ?>
Sessoin register <? header("Expires: Sat, 01 Jan 2000 00:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); header("Cache-Control: post-check=0, pre-check=0",false); session_cache_limiter("must-revalidate"); session_start(); include("staff.inc.php"); $user = $HTTP_POST_VARS["user"]; $pass = $HTTP_POST_VARS["password"]; $valid_user = $user; if (strtoupper($user) == strtoupper($adminuser)) { if ($adminpass == $pass) session_register("valid_user"); header("Location:pay.php"); } else header("Location:login.html"); ?>
ตรวจสถานะ Session admin.php <? header("Expires: Sat, 01 Jan 2000 00:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); header("Cache-Control: post-check=0, pre-check=0",false); session_cache_limiter("must-revalidate"); ob_start(); session_start(); //fix to help internet explorer remember form variables header("Cache-control: private"); //IE 6 fix if (session_is_registered("valid_user")) { $valid_user = $HTTP_SESSION_VARS[“valid_user”]; echo “<h2>Hello welcome admin ..</h2><br>”; echo “<a href=‘logout.php?valid_user=$valid_user’> Logout </a>”; } else header("Location:login.html"); ?>
logout logout.php <? header("Expires: Sat, 01 Jan 2000 00:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); header("Cache-Control: post-check=0, pre-check=0",false); session_cache_limiter("must-revalidate"); ob_start(); session_start(); $valid_user = $HTTP_GET_VARS[“valid_user"]; if (session_is_registered("valid_user")) { $valid_user = $HTTP_SESSION_VARS["valid_user"]; $result = session_unregister("valid_user"); session_destroy(); unset($valid_user); header("location:login.php"); } ?>