ต่อจาก บทที่ 2 บทนี้จะเป็นเรื่อง Login พัฒนาต่อมาจาก บทความphp--ทำระบบLoginด้วยsessionPhp+Mysql
ไฟล์หน้า login.php เหมือนบทความเก่า แค่ form ส่งค่า
- <form action="loginresult.php" method="post">
- <table align="center" width="400" border="0" cellpadding="5" cellspacing="0">
- <tr><td>Username : <input type="email" name="memberemail"></td></tr>
- <tr><td>Password : <input type="password" name="memberpass"></td></tr>
- <tr><td><input type="submit" value="Login"></td></tr>
- <tr><td><a href="lostpass.php">ลืมรหัสผ่าน</a></td></tr>
- </table>
- </form>
ไฟล์หน้า loginresult.php
- <?php
- include_once("connect.php");
- $memberemail=$_POST['memberemail'];
- $memberpass=md5($_POST['memberpass']);
- $rslogin = mysql_query("select * from member where (memberemail='$memberemail') and (memberpass='$memberpass')");
- $rowlogin=mysql_fetch_array($rslogin);
- $num_rows = mysql_num_rows($rslogin); //เช็คว่าค่า user และ password ที่กรอกเข้ามามีอยู่หรือไม่ ถ้าเจอก็ login ได้
- if(emptyempty($num_rows)) { // ถ้าไม่เจอ record เลย
- echo "username หรือ password ไม่ถูกต้อง <a href=login.php>แก้ไข</a>";
- } else {
- $_SESSION['sess_memberemail'] = $rowlogin['memberemail'];
- $_SESSION['sess_membername'] = $rowlogin['membername'];
- @header("Location:memberzone.php"); // redirect ไปหน้า memberzone.php
- exit;
- }
- ?>
ไฟล์ checklogin.php
- <?php
- session_start();
- if($_SESSION['sess_memberemail']=="") {
- echo "<META HTTP-EQUIV=Refresh content=0;URL=login.php>";
- }
- ?>
ไฟล์ memberzone.php หน้านี้ใส่โค้ด html หรืออะไรก็แล้วแต่ แล้วก็ใส่ link สำหรับ logout ไว้สำหรับออกจากระบบ
- <?php
- include_once("checklogin.php");
- include_once("connect.php");
- หน้านี้ใส่โค้ดสำหรับสมาชิก
- <a href="logout.php">Logout</a>
- ?>
ไฟล์ logout.php
สำหรับการ logout มี 2 วิธี วิธีแรกแบบล้าง session ทุกชื่อ
วิธี 2 ล้าง session เฉพาะสมาชิก บางทีจะมี session ตะกร้า หรือ session อื่นๆ ที่จะเก็บไว้
- <?php
- session_start();
- session_destroy();
- echo "<META HTTP-EQUIV=Refresh content=0;URL=login.php>";
- ?>
- <?php
- session_start();
- unset($_SESSION["sess_memberemail"]);
- unset($_SESSION["sess_membername"]);
- echo "<META HTTP-EQUIV=Refresh content=0;URL=login.php>";
- ?>
ในตัวอย่างใช้ meta refresh แต่จริงๆ ควร redirect ด้วย header location
ต่างกันอย่างไร ถ้าใช้ meta refresh จะสามารถกด back กลับได้ แต่ถ้าใช้ header จะ back ไม่ได้ ลองดูสิ
0 ความคิดเห็น:
แสดงความคิดเห็น