วิธีการต่อไปนี้ เป็นแนวทางเบื้องต้น สำหรับการทำระบบล็อกอิน ด้วย ajax อย่างง่าย
ไฟล์สำหรับหน้าล็อกอิน สมมติเป็น index.php ประกอบด้วยฟอร์มสำหรับล็อกอิน
<form id="form_login_x" name="form_login_x" method="post" action=""> User: <input type="text" name="textfield" id="textfield" /> Pass: <input type="text" name="textfield2" id="textfield2" /> <input type="submit" name="LoginBT" id="LoginBT" value="Login" /> </form>
สิ่งที่จำเป็นต้องกำหนด
id ของฟอร์ม ในที่นี้ <form id="form_login_x"
id ของส่วนกรอกชื่อผู้ใช้ id="user_name"
id ของส่วนกรอกรหัสผ่าน id="user_pass"
กำหนดเพื่อไว้สำหรับอ้างอิงในการใช้งานกับ javascript
ตัวอย่างโครงสร้าง ส่วนของฐานข้อมูลสำหรับทดสอบ
-- -- Table structure for table `tbl_user` -- CREATE TABLE `tbl_user` ( `user_id` int(11) NOT NULL auto_increment, `user_name` varchar(100) NOT NULL, `user_pass` varchar(100) NOT NULL, PRIMARY KEY (`user_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; -- -- Dumping data for table `tbl_user` -- INSERT INTO `tbl_user` VALUES (1, 'admin', '12345');
ส่วนของ javascript สำหรับส่งข้อมูลไปตรวจสอบ
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> <script type="text/javascript"> $(function(){ $("#form_login_x").submit(function(){ // เมื่อมีการ submit ฟอร์ม ล็อกอิน // ส่งข้อมูลไปตรวจสอบที่ไฟล์ check_login.php แบบ post ด้วย ajax $.post("check_login.php",$("#form_login_x").serialize(),function(data){ if(data==1){ // ตรวจสอบผลลัพธ์ // ถ้าล็อกอินผ่าน ให้ลิ้งค์ไปที่หน้า main_page.php window.location='main_page.php'; }else{ /// คำสั่งหรือแจ้งเตือนกรณีล็อกอินไม่ผ่าน $("#form_login_x")[0].reset(); } }); return false; }); }); </script>
ส่วนของไฟล์สำหรับตรวจสอบการล็อกอิน สมมติใช้ check_login.php
<?php session_start(); header("Content-type:text/html; charset=UTF-8"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); // ส่วนของการเชิ่อมต่อกับฐานข้อมูล mysql_connect("localhost","root","test") or die("Cannot connect the Server"); mysql_select_db("test") or die("Cannot select database"); mysql_query("set character set utf8"); if($_POST['user_name']!="" && $_POST['user_pass']!=""){ $q="SELECT * FROM tbl_user WHERE user_name='".$_POST['user_name']."' "; $q.=" AND user_pass='".$_POST['user_pass']."' LIMIT 1 "; $qr=mysql_query($q); if(mysql_num_rows($qr)>0){ $rs=mysql_fetch_array($qr); // $_SESSION['ses_user']=$rs['user_id']; // สร้างตัวแปร session ตามต้องการ echo "1"; // เมื่อล็อกอินผ่าน }else{ echo "0"; } }else{ echo "0"; } ?>
ส่วนสุดท้าย ในไฟล์ main_page.php ให้ตรวจสอบ session ที่สร้างจากไฟล์ check_login.php
ถ้าไม่มีตัวแปร session ตามที่กำหนด ให้กลับมาที่หน้าล็อกอิน
<?php session_start(); if(!isset($_SESSION['ses_user']) || $_SESSION['ses_user']==""){ header("Location:index.php"); } // ใส่ไว้ด้านบนของไฟล์สำหรับ เช็คว่าเป็น user หรือไม่ ?>
ตัวอย่างโค้ดไฟล์ทั้งหมด
ไฟล์ index.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=utf-8" /> <title></title> </head> <body> <form id="form_login_x" name="form_login_x" method="post" action=""> User: <input type="text" name="user_name" id="user_name" /> Pass: <input type="text" name="user_pass" id="user_pass" /> <input type="submit" name="LoginBT" id="LoginBT" value="Login" /> </form> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> <script type="text/javascript"> $(function(){ $("#form_login_x").submit(function(){ // เมื่อมีการ submit ฟอร์ม ล็อกอิน // ส่งข้อมูลไปตรวจสอบที่ไฟล์ check_login.php แบบ post ด้วย ajax $.post("check_login.php",$("#form_login_x").serialize(),function(data){ if(data==1){ // ตรวจสอบผลลัพธ์ // ถ้าล็อกอินผ่าน ให้ลิ้งค์ไปที่หน้า main_page.php window.location='main_page.php'; }else{ /// คำสั่งหรือแจ้งเตือนกรณีล็อกอินไม่ผ่าน $("#form_login_x")[0].reset(); } }); return false; }); }); </script> </body> </html>
ไฟล์ check_login.php สำหรับตรวจสอบการล็อกอิน
<?php session_start(); header("Content-type:text/html; charset=UTF-8"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); // ส่วนของการเชิ่อมต่อกับฐานข้อมูล mysql_connect("localhost","root","test") or die("Cannot connect the Server"); mysql_select_db("test") or die("Cannot select database"); mysql_query("set character set utf8"); if($_POST['user_name']!="" && $_POST['user_pass']!=""){ $q="SELECT * FROM tbl_user WHERE user_name='".$_POST['user_name']."' "; $q.=" AND user_pass='".$_POST['user_pass']."' LIMIT 1 "; $qr=mysql_query($q); if(mysql_num_rows($qr)>0){ $rs=mysql_fetch_array($qr); // $_SESSION['ses_user']=$rs['user_id']; // สร้างตัวแปร session ตามต้องการ echo "1"; // เมื่อล็อกอินผ่าน }else{ echo "0"; } }else{ echo "0"; } ?>
ไฟล์หน้าหลักจะสามารถเข้าใช้งานได้ เมื่อล็อกอินผ่านเท่านั้น main_page.php หรือไฟล์อื่นๆ
<?php session_start(); if(!isset($_SESSION['ses_user']) || $_SESSION['ses_user']==""){ header("Location:index.php"); } // ใส่ไว้ด้านบนของไฟล์สำหรับ เช็คว่าเป็น user หรือไม่ ?>
เนื้อหาเบื้องต้นเป็นแนวทาง ความต้องการที่เหนือกว่า ขึ้นอยู่กับการประยุกต์ใช้งานของแต่ละคน