ป้องกันการ back กลับ หลังจาก login, logout ออกไปแล้ว ทำอย่างไรบ้างครับ

เริ่มโดย TEEST, 11 พฤศจิกายน 2021, 17:06:50

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

TEEST

อ้างถึง
ป้องกันการ back กลับ หลังจาก login, logout ออกไปแล้ว ทำอย่างไรบ้างครับ

1.เมื่อ login สำเร็จ ไปยังหน้าที่ต้องการ แต่พอเวลากด back กลับมายังหน้า login ครับ ไม่อย่าให้สามารถกด back กลับไปได้ครับ

suriyan2538

สงสัยเหมือนกันครับ คิดว่าน่าจะต้องมีโค้ดบางอย่าง

ของผมเวลาสมาชิกล็อกอินไปแล้ว พอกด Back กลับมา กลายเป็นยังไม่ได้เข้าระบบซะงั้น เพราะติดแคชของหน้า สมาชิกจะต้องกดโหลดหน้าใหม่ ถึงจะมองไม่เห็นเมนูล็อกอิน

TEEST

อ้างถึงจาก: suriyan2538 ใน 11 พฤศจิกายน 2021, 22:26:59
สงสัยเหมือนกันครับ คิดว่าน่าจะต้องมีโค้ดบางอย่าง

ของผมเวลาสมาชิกล็อกอินไปแล้ว พอกด Back กลับมา กลายเป็นยังไม่ได้เข้าระบบซะงั้น เพราะติดแคชของหน้า สมาชิกจะต้องกดโหลดหน้าใหม่ ถึงจะมองไม่เห็นเมนูล็อกอิน

ศึกษา code หลายๆตัว ไม่มีบ่งบอกว่า จุดนี้ จุดนั้น ห้าม back ครับ

ouidesignweb

อ้างถึงจาก: TEEST ใน 12 พฤศจิกายน 2021, 13:29:35
อ้างถึงจาก: suriyan2538 ใน 11 พฤศจิกายน 2021, 22:26:59
สงสัยเหมือนกันครับ คิดว่าน่าจะต้องมีโค้ดบางอย่าง

ของผมเวลาสมาชิกล็อกอินไปแล้ว พอกด Back กลับมา กลายเป็นยังไม่ได้เข้าระบบซะงั้น เพราะติดแคชของหน้า สมาชิกจะต้องกดโหลดหน้าใหม่ ถึงจะมองไม่เห็นเมนูล็อกอิน

ศึกษา code หลายๆตัว ไม่มีบ่งบอกว่า จุดนี้ จุดนั้น ห้าม back ครับ

ระบบสมาชิกเมื่อเข้าสู่ระบบแล้ว จะมีการเก็บ session ไว้ และใน session จะเก็บ ID สมาชิก
ส่วนใหญ่ผมจะเขียนเช็คที่หน้า login หากมี  session ID สมาชิก ผมจะให้มัน redirect ไปที่หน้าแรกของระบบสมาชิกครับ

TEEST

อ้างถึงจาก: ouidesignweb ใน 12 พฤศจิกายน 2021, 13:35:34
อ้างถึงจาก: TEEST ใน 12 พฤศจิกายน 2021, 13:29:35
อ้างถึงจาก: suriyan2538 ใน 11 พฤศจิกายน 2021, 22:26:59
สงสัยเหมือนกันครับ คิดว่าน่าจะต้องมีโค้ดบางอย่าง

ของผมเวลาสมาชิกล็อกอินไปแล้ว พอกด Back กลับมา กลายเป็นยังไม่ได้เข้าระบบซะงั้น เพราะติดแคชของหน้า สมาชิกจะต้องกดโหลดหน้าใหม่ ถึงจะมองไม่เห็นเมนูล็อกอิน

ศึกษา code หลายๆตัว ไม่มีบ่งบอกว่า จุดนี้ จุดนั้น ห้าม back ครับ

ระบบสมาชิกเมื่อเข้าสู่ระบบแล้ว จะมีการเก็บ session ไว้ และใน session จะเก็บ ID สมาชิก
ส่วนใหญ่ผมจะเขียนเช็คที่หน้า login หากมี  session ID สมาชิก ผมจะให้มัน redirect ไปที่หน้าแรกของระบบสมาชิกครับ

ขอ example ด้วยครับ อยากรู้วิธีครับ ติดมาหลายวันครับ
code login

<?php
    
    
require_once('database/connection.php'); 
    
    if (isset(
$_POST['submit'])) { 

        
$username =  $conn->real_escape_string($_POST['username']);
        
$password $conn->real_escape_string($_POST['password']);
        
date_default_timezone_set('Asia/Bangkok');
        
$Newtime date('Y-m-d H:i:s');
        
$Newtime1 date('Y-m-d H:i:s');

        
$sql "SELECT * FROM `user` WHERE `username` = '".$username."'";
        
$result $conn->query($sql);
        
$row $result->fetch_assoc();

        if(!empty(
$row)){
            if(
password_verify($password$row['password'])){
                
$update "UPDATE `user` SET updated_at = '$Newtime', updated_dt = '$Newtime1'
                 WHERE `username` = '
$username'";
                
$runupdate $conn->query($update);

                
$_SESSION['id'] = $row['id'];
                
$_SESSION['firstname'] = $row['firstname'];
                
$_SESSION['lastname'] = $row['lastname'];
                
$_SESSION['username'] = $row['username'];
                
$_SESSION['password'] = $row['password'];
                
$_SESSION['image'] = $row['image'];
                
$_SESSION['created_at'] = $row['created_at'];
                
$_SESSION['updated_at'] = $Newtime;
                
$_SESSION['updated_dt'] = $Newtime1;
                
$_SESSION['status'] = $row['status'];

                
session_write_close();
               
                 if (
$_SESSION['status'] == 'admin') {
                    echo 
"<script>alert('เข้าสู่ระบบสำเร็จ...'); window.location ='../cmssystem/pages/admin/dashboard/';</script>";
                }
    
                if (
$_SESSION['status'] == 'member') {
                    echo 
"<script>alert('เข้าสู่ระบบสำเร็จ...'); window.location ='../cmssystem/pages/users/dashboard/';</script>";
                    
                }

            } else {
                echo 
'<script> alert("username หรือ password ไม่ถูกต้อง") </script>';
                
header('Refresh:0; url=index.php');
            }
        }else{

            echo 
'<script> alert("ไม่สามารถเข้าสู่ระบบได้โปรดกรอกข้อมูลใหม่อีกครั้ง")</script>';
            
header("Refresh:0");
        } 
    }
?>


TEEST

update นิดหน่อยครับ เผื่อท่านอื่นต้องการป้องกัน back กลับ
จบด้วย unset($_SESSION['example']); ครับ

Code (login)
unset($_SESSION['example']);

Code (pages admin or member)
$example = isset($_SESSION['example']) ? $_SESSION['example'] : '';
   if($example != "admin") //pages member เปลี่ยนจาก admin เป็น member ครับ
   {
       header('location:ilogin.php');
       exit();
   }