ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: TEEST ที่ 11 พฤศจิกายน 2021, 17:06:50



หัวข้อ: ป้องกันการ back กลับ หลังจาก login, logout ออกไปแล้ว ทำอย่างไรบ้างครับ
เริ่มหัวข้อโดย: TEEST ที่ 11 พฤศจิกายน 2021, 17:06:50
อ้างถึง
ป้องกันการ back กลับ หลังจาก login, logout ออกไปแล้ว ทำอย่างไรบ้างครับ

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


หัวข้อ: Re: ป้องกันการ back กลับ หลังจาก login, logout ออกไปแล้ว ทำอย่างไรบ้างครับ
เริ่มหัวข้อโดย: suriyan2538 ที่ 11 พฤศจิกายน 2021, 22:26:59
สงสัยเหมือนกันครับ คิดว่าน่าจะต้องมีโค้ดบางอย่าง

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


หัวข้อ: Re: ป้องกันการ back กลับ หลังจาก login, logout ออกไปแล้ว ทำอย่างไรบ้างครับ
เริ่มหัวข้อโดย: TEEST ที่ 12 พฤศจิกายน 2021, 13:29:35
สงสัยเหมือนกันครับ คิดว่าน่าจะต้องมีโค้ดบางอย่าง

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

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


หัวข้อ: Re: ป้องกันการ back กลับ หลังจาก login, logout ออกไปแล้ว ทำอย่างไรบ้างครับ
เริ่มหัวข้อโดย: ouidesignweb ที่ 12 พฤศจิกายน 2021, 13:35:34
สงสัยเหมือนกันครับ คิดว่าน่าจะต้องมีโค้ดบางอย่าง

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

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

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


หัวข้อ: Re: ป้องกันการ back กลับ หลังจาก login, logout ออกไปแล้ว ทำอย่างไรบ้างครับ
เริ่มหัวข้อโดย: TEEST ที่ 12 พฤศจิกายน 2021, 15:46:51
สงสัยเหมือนกันครับ คิดว่าน่าจะต้องมีโค้ดบางอย่าง

ของผมเวลาสมาชิกล็อกอินไปแล้ว พอกด 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");
        } 
    }
?>



หัวข้อ: Re: ป้องกันการ back กลับ หลังจาก login, logout ออกไปแล้ว ทำอย่างไรบ้างครับ
เริ่มหัวข้อโดย: TEEST ที่ 17 พฤศจิกายน 2021, 15:11:51
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();
   }