Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > ป้องกันการ back กลับ หลังจาก login, logout ออกไปแล้ว ทำไมยัง back กลับปกติได้ครับ หรือทำผิดพลาด ชี้แนะด้วยครับ



 

ป้องกันการ back กลับ หลังจาก login, logout ออกไปแล้ว ทำไมยัง back กลับปกติได้ครับ หรือทำผิดพลาด ชี้แนะด้วยครับ

 



Topic : 136480



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์




Quote:
ป้องกันการ back กลับ หลังจาก login, logout ออกไปแล้ว ทำไมยัง back กลับปกติได้ครับ หรือทำผิดพลาด ชี้แนะด้วยครับ


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");
        } 
    }
?>


Code (ex. page index admin )
<?php
    require_once('../../../database/connection.php');
    if($_SESSION['id'] == "")
    {
        echo "Please Login!";
        exit();
    }

    if($_SESSION['status'] != "admin")
    {
        echo "This page for Admin only!";
        exit();
    }   
    
    $sql = "SELECT * FROM user WHERE id = '".$_SESSION['id']."' ";
    $query = $conn->query($sql);
    $result = $query->fetch_assoc();
?>


Code (logout)
<?php 
   
    session_start(); 
    session_destroy(); 

    echo "<script>alert('ยืนยันการออกจากระบบ...'); window.location ='../../index.php';</script>";
?>




Tag : PHP, MySQL









ประวัติการแก้ไข
2021-11-11 16:52:03
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2021-11-11 16:50:12 By : TeeTs View : 1582 Reply : 21
 

 

No. 1



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



สถานะออฟไลน์


ถ้า logout แล้วกด back กลับมาแต่ยังอยู่ มันอาจจะเป็น cache ที่ค้างของเก่าอยู่

ถ้ากด refresh/reload แล้วไม่อยู่หน้าเดิมแต่แจ้งว่าไม่ได้ login ก็แสดงว่าใช่ เป็นเพราะ cache

ถ้าต้องการไม่ให้ cache ในหน้าที่ต้องตรวจ login เสมอและต้องตรวจแบบสดใหม่ไม่ยอมให้ cache ให้หาโค้ด php no cache มาใช้
ตัวอย่าง

Code (PHP)
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

https://stackoverflow.com/questions/13640109/how-to-prevent-browser-cache-for-php-site






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-11 17:25:40 By : mr.v
 


 

No. 2



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.v เมื่อวันที่ 2021-11-11 17:25:40
รายละเอียดของการตอบ ::
ถ้า logout แล้วกด back กลับมาแต่ยังอยู่ มันอาจจะเป็น cache ที่ค้างของเก่าอยู่
>>>หน้า login เมื่อ login สำเร็จ redirect ไปยัง pages admin, user พบว่าสามารถ กด back ไปหน้า login ได้ แต่ที่จริงๆควรจะ back กลับไปไม่ได้ครับ ใช้วิธีไหนครับ

>>>logout เวลา logout redirect ไปยังหน้า index พอกด back พบว่าสามารถ กด back ไปหน้า pages admin, user ได้ แต่ที่จริงๆควรจะ back กลับไปไม่ได้ครับ

ถ้ากด refresh/reload แล้วไม่อยู่หน้าเดิมแต่แจ้งว่าไม่ได้ login ก็แสดงว่าใช่ เป็นเพราะ cache
>>>refresh/reload ไม่ได้แจ้งเตือนอะไรเลยครับ พอกด back อยู่หน้าเดิมครับ





ประวัติการแก้ไข
2021-11-11 17:40:23
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-11 17:39:54 By : TeeTs
 

 

No. 3



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



สถานะออฟไลน์


Quote:
หน้า login เมื่อ login สำเร็จ redirect ไปยัง pages admin, user พบว่าสามารถ กด back ไปหน้า login ได้ แต่ที่จริงๆควรจะ back กลับไปไม่ได้ครับ ใช้วิธีไหนครับ


ตรวจดูการออกแบบโค้ดให้ดี ว่าส่วนที่ตรวจการ login แล้วมันอยู่ตรงไหนในเงื่อนไขไหนกันแน่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-11 17:51:48 By : mr.v
 


 

No. 4



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : mr.v เมื่อวันที่ 2021-11-11 17:51:48
รายละเอียดของการตอบ ::
นี้ไหมครับ หรือมี ex. ไหมครับ
Code (PHP)
 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>";
 }




ประวัติการแก้ไข
2021-11-11 18:00:14
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-11 17:59:42 By : TeeTs
 


 

No. 5



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 4 เขียนโดย : TeeTs เมื่อวันที่ 2021-11-11 17:59:42
รายละเอียดของการตอบ ::
ใช่ มันอยู่ซ้อนในเงื่อนไขหลังจากการ submit form แล้วมันถึงตรวจสอบไม่ได้ผล แล้วก็ไม่มีใครเขาทำกันอย่างนั้น
คุณต้องออกแบบการทำงานใหม่โดยคิดทุกแง่ทั้งจากการ submit form และจากการเรียกดูธรรมดา
ตัวอย่างก็ลองหาดูจาก Google ซึ่งโค้ดสมัครสมาชิกมีเยอะแยะไปหมด

ของผมก็กำลังคิดจะทำเป็นตัวอย่างอันหนึ่งแต่ยังไม่ว่าง คงจะอีกนาน

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-11 18:08:52 By : mr.v
 


 

No. 6



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : mr.v เมื่อวันที่ 2021-11-11 18:08:52
รายละเอียดของการตอบ ::
ขอบคุณครับ

รอติดตามครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-11 18:18:44 By : TeeTs
 


 

No. 7



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 6 เขียนโดย : TeeTs เมื่อวันที่ 2021-11-11 18:18:44
รายละเอียดของการตอบ ::
ที่ผมบอกคือให้แก้ไขออกแบบใหม่ ทำเองไปก่อนครับ ถ้าเขียนเองการออกแบบใหม่แค่นี้ไม่เหลือบ่ากว่าแรงหรอก จัดกระบวนการทำงานใหม่
ผมไม่ได้บอกให้รอ เพราะไม่รู้จะทำหรือเปล่าด้วยเนื่องจากมันมีอยู่แล้วเยอะแยะไปหมดในเน็ต

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-11 19:53:12 By : mr.v
 


 

No. 8



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



สถานะออฟไลน์


Quote:
logout เวลา logout redirect ไปยังหน้า index พอกด back พบว่าสามารถ กด back ไปหน้า pages admin, user ได้ แต่ที่จริงๆควรจะ back กลับไปไม่ได้ครับ


var_dump($_SESSION); ในหน้า admin ออกมาดูว่าหลังจาก logout แล้ว มันเหลืออะไร
ถ้าไม่เหลือและกด refresh แล้วขึ้นให้ login ก็คือติด cache อย่างที่ผมบอกไปแล้วข้างบน ตรงนี้ผมบอกวิธีแก้ไปหมดแล้ว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-11 19:57:28 By : mr.v
 


 

No. 9



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


Code (ex. page index admin)
<?php
    require_once('../../../database/connection.php');
    if($_SESSION['id'] == "")
    {
        echo "Please Login!";
        exit();
    }

    if($_SESSION['status'] != "admin")
    {
        echo "This page for Admin only!";
        exit();
    }   
    
    $sql = "SELECT * FROM user WHERE id = '".$_SESSION['id']."' ";
    $query = $conn->query($sql);
    $result = $query->fetch_assoc();
?>


SESSION id กำหนดแล้วครับ แต่ทำไมขึ้น Undefined index: id ครับ (code ป้องกันการ back กลับ หลังจาก logout)
Quote:
Notice: Undefined index: id in C:\xampp\htdocs\cmssystem\cmssystem\pages\admin\dashboard\index.php on line 3



ประวัติการแก้ไข
2021-11-12 14:46:24
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-12 14:43:34 By : TeeTs
 


 

No. 10



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



สถานะออฟไลน์


https://www.thaicreate.com/community/notice-undefined-index.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-12 14:46:14 By : mr.v
 


 

No. 11



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



สถานะออฟไลน์


https://github.com/martinontcode/Membership-system
https://github.com/OscarBjurestrand/php-membership
https://github.com/berkayozcan/php-membersystem

https://github.com/search?l=PHP&q=member+login&type=Repositories ตัวอย่างเยอะแยะ หาเอา
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-12 20:51:44 By : mr.v
 


 

No. 12



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 11 เขียนโดย : mr.v เมื่อวันที่ 2021-11-12 20:51:44
รายละเอียดของการตอบ ::
Thank you very much

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-15 10:48:35 By : TeeTs
 


 

No. 13



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


จากที่ไปแก้ไข ป้องกันการ back login, logout ครับ

1. สิ่งที่แก้ไข คือ ใส่ session_destroy();ไว้บนสุดของ login
= ผลที่ตามมา คือ เมื่อ login แจ้งเข้าสู่ระบบสำเร็จ แล้วกลับมายังหน้า login เหมือนเดิมครับ

2.ผมแก้ไขรอบใหม่ คือ จาก session_destroy();ไว้บนสุดของ login
= ผมเปลี่ยน session_destroy(); ไว้บนสุดของ sidebar ครับ
= ผลที่ตามมา 1 คือ เมื่อ login แจ้งเข้าสู่ระบบสำเร็จ redirect ไปยังหน้า pages admin (ถูกต้องครับ)
= ผลที่ตามมา 2 คือ เมื่อ login แจ้งเข้าสู่ระบบสำเร็จ redirect ไปยังหน้า pages admin ถ้ากด back กลับไปจะถูกล้าง session_destroy และให้ login ใหม่ (ถูกต้องครับ)
= ผลที่ตามมา 3 คือ เมื่อ logout ยืนยันการออกจากระบบ redirect มายังหน้า login กด back กลับไปไม่ได้ (ถูกต้องครับ)

3.ผมเจอระหว่าง เมื่อ session_destroy(); ไว้บนสุดของ sidebar ครับ
= ผลที่ตามมา คือ เมื่อคลิกเมนู sidebar ทุกเมนู กลับให้ login ใหม่ครับ ขอคำแนะนำด้วยครับ

ผมสังสัยว่าทำไมต้อง login ใหม่ เวลาคลิกเมนู sidebar ทุกเมนู เพราะทั้งๆ ที login แจ้งเข้าสู่ระบบสำเร็จ redirect ไปยังหน้า pages admin แล้วครับ
(แต่เมื่อปิด session_destroy(); เมนู sidebar ทุกเมนูกลับทำงานได้ปกติครับ แต่เวลากด back สามารถกดกลับไป กลับมาได้ ผลที่ตามมา 2 ที่อธิบายข้อที่ 2 ไม่ทำงานเช่นกันครับ เมื่อปิด session_destroy(); )

Code (sidebar)
     require_once('../../../database/connection.php');
     session_destroy();

     $status = isset($_SESSION['status']) ? $_SESSION['status'] : '';
    if($status != "admin")
    {
        header('location:../../../index.php');
        exit();
    }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-16 12:01:42 By : TeeTs
 


 

No. 14



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



สถานะออฟไลน์


ก็คุณเล่นเอา session_destroy() ไปไว้ตรงนั้นมันก็ทำงานน่ะสิครับ
คุณเขียนโดยไม่เข้าใจความหมายของคำสั่งนั้นๆเลย

ควรออกแบบใหม่ ทดลองเขียนกระบวนการทำงานบนกระดาษก็ได้ จะได้เห็นภาพรวม
หน้า login ความจริงแล้วไม่มีใครเขาไปทำอะไรกับมันมากเท่าไหร่หรอก ดูอย่างพวก cms WordPress, Joomla, Drupal ก็ได้ เขาปล่อยเลย จะเปิดก็เปิดไป เพราะผู้ใช้อาจเปลี่ยนใจกลับไป login ใหม่ได้โดยไม่ต้องเสียเวลา logout
แต่ถ้าจะทำให้ redirect เมื่อ login แล้ว การตรวจ session login แล้วต้องมาก่อนอันดับแรก ถ้ามี session login แล้วให้ redirect ไปหน้า admin ถ้าไม่มีก็ปล่อยทำงานหน้า login ไป

หน้า admin ก็ทำไฟล์ include สักอันตรวจการ login
ถ้าไม่มี session login เลยก็ให้ redirect ไปหน้า login ถ้ามีก็ปล่อย

หน้า logout ถึงค่อยทำ session_destroy() หรือล้าง session โดยไม่ต้อง destroy
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-16 12:32:29 By : mr.v
 


 

No. 15



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 14 เขียนโดย : mr.v เมื่อวันที่ 2021-11-16 12:32:29
รายละเอียดของการตอบ ::
ควรออกแบบใหม่ ทดลองเขียนกระบวนการทำงานบนกระดาษก็ได้ จะได้เห็นภาพรวม
หน้า login ความจริงแล้วไม่มีใครเขาไปทำอะไรกับมันมากเท่าไหร่หรอก ดูอย่างพวก cms WordPress, Joomla, Drupal ก็ได้ เขาปล่อยเลย จะเปิดก็เปิดไป เพราะผู้ใช้อาจเปลี่ยนใจกลับไป login ใหม่ได้โดยไม่ต้องเสียเวลา logout
โดยส่วนตัวครับ ส่วนตัวนะ ผมชอบแบบป้องกัน การกด back ถ้า login แล้ว redirect ไปหน้า admin เมื่อกด back ก็ให้ login ใหม่ครับ

แสดงมันต้องล้าง session ครับ คือตัวที่ผมใช้ เมื่อกด back ล้าง session แล้ว login ใหม่
แต่มันไปล้าง session sidebar หมด ผมกำลังหาวิธีแก้อยู่ครับ ใช้อย่างอื่นครับ


แต่ถ้าจะทำให้ redirect เมื่อ login แล้ว การตรวจ session login แล้วต้องมาก่อนอันดับแรก ถ้ามี session login แล้วให้ redirect ไปหน้า admin ถ้าไม่มีก็ปล่อยทำงานหน้า login ไป
ถูกต้อง ผมทำแยกสิทธิ์ pages user, admin ครับ

หน้า admin ก็ทำไฟล์ include สักอันตรวจการ login
ถ้าไม่มี session login เลยก็ให้ redirect ไปหน้า login ถ้ามีก็ปล่อย
ก็คือ code ตรง sidebar ไม่ใช่หรอครับ ถ้าไม่ใช่ example code ครับ



ประวัติการแก้ไข
2021-11-16 13:21:51
2021-11-16 13:25:40
2021-11-16 13:26:26
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-16 13:20:46 By : TeeTs
 


 

No. 16



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



สถานะออฟไลน์


sidebar มันคือส่วนที่ควรจะเป็นว่าด้วยการแสดงผล
การประมวลผลมันต้องแยกออกมาและอยู่ก่อน อยู่ด้านบน การแสดงผลอยู่ด้านล่าง ไม่ใช่เอามาเปะปะกันปนกันมั่ว
คุณลองเอาโค้ดนี้ไปรันบน server ที่หลากหลายดูซิ มันจะต้องมีเดี้ยงสัก server หนึ่ง

Code (PHP)
<?php
session_start();
?>
sidebar
<?php
if (!isset($_SESSION['loggedin'])) {
    header('Location: /admin/login.php');
}
?>


เพราะตัวอย่างข้างบนนี่มันจะไปเจอตอ output buffer ที่ถูกปิดในบาง server หรือบางกรณี server จริงอาจจะปิดไว้ หรือกรณีถ้ามีปัญหาในงานส่วนอื่นบางอย่าง แล้วมีการต้องปิด output buffer ลงไป
ไม่ว่ากรณีไหน มันจะมีปัญหา redirect ไม่ได้ เพราะออกแบบผิด!

ตัวอย่างที่ผมให้ไปมีเยอะแยะไม่รู้ได้ดูบ้างหรือเปล่าเพราะกระทู้ก่อนๆก็เห็นได้ชัดว่าตอบแล้วก็ไม่ค่อยจะอ่านจะดู. อย่างตัวอย่างก็ให้ในลิ้งค์มีหลากหลาย ของดีๆก็มีเยอะ ก็ยังจะมาขอ example
คุณลองดูตัวอย่างของเขาแล้วเลาะออกมาเป็นกระบวนการ เขียนลงบนกระดาษ ดูว่าในแต่ละหน้าเช่น login, logout กระบวนการทำงานของเขา เขาทำอะไรก่อนหลัง คล้ายอย่างที่ผมบอกหรือเปล่า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-16 14:53:30 By : mr.v
 


 

No. 17



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



สถานะออฟไลน์


ตัวอย่างหน้า login

--------------------------------------

* ตรวจ session user login ว่ามีหรือไม่
..* ถ้ามีแล้วให้ redirect ไปหน้า admin แล้วสิ้นสุดการทำงาน -|
..* ถ้าไม่มีไม่ต้องทำอะไร ปล่อยให้ข้างล่างทำงานต่อ

* ถ้า form มีการ submit
..* ตรวจ username กับฐานข้อมูล
..* ถ้าไม่มีให้บอก username หรือ password ผิด แล้วสิ้นสุดการทำงาน -|
..* ถ้ามี ตรวจรหัสผ่านต่อ
....* ถ้าไม่ถูก ให้บอก username, password ผิด แล้วสิ้นสุดการทำงาน -|
..* มาถึงตรงนี้คือรหัสผ่านถูก username พบ ให้เขียน session login ที่ต้องการกำหนด
..* เสร็จแล้ว redirect ไปหน้า admin แล้วสิ้นสุดการทำงานของ login -|

----------------------------------------

นี่ตัวอย่างกระบวนการ แค่หน้าเดียว เทียบดูกับของเดิมอันแรกของคุณไปเอาการตรวจ session login ไปยัดไว้ข้างในไหนๆมันเลยไม่ทำงานไง
พอมองออกหรือยัง
หน้าอื่นก็ออกแบบมาอย่างงี้ก่อน ตรวจดูว่าโฟลวมันควรทำงานได้แล้วค่อยโค้ด


ประวัติการแก้ไข
2021-11-16 15:19:29
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-16 15:19:02 By : mr.v
 


 

No. 18



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 16 เขียนโดย : mr.v เมื่อวันที่ 2021-11-16 14:53:30
รายละเอียดของการตอบ ::
จะย้าย code ชุดนี้ไว้ที่ไหนครับ เดิมอยู่ที่ sidebar

Code (PHP)
 require_once('../../../database/connection.php');

 $status = isset($_SESSION['status']) ? $_SESSION['status'] : '';
if($status != "admin")
{
    header('location:../../../index.php');
    exit();
}


ในฐานข้อมูล ผมไม่มี $_SESSION['loggedin'] หรือ loggedin ควรใช้อะไรครับ





ประวัติการแก้ไข
2021-11-16 15:23:27
2021-11-16 15:27:26
2021-11-16 15:28:14
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-16 15:20:02 By : TeeTs
 


 

No. 19



โพสกระทู้ ( 4,720 )
บทความ ( 8 )



สถานะออฟไลน์


$_SESSION['loggedin'] ไม่มีคุณจะใช้อะไรก็แล้วแต่คุณ ให้สมมุติว่ามันคือ session ที่เอาไว้ตรวจ login แล้วเฉยๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-16 15:25:54 By : mr.v
 


 

No. 20



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 19 เขียนโดย : mr.v เมื่อวันที่ 2021-11-16 15:25:54
รายละเอียดของการตอบ ::
ผมก็ศึกษาจากที่ เขาสอนกันอ่าครับ แล้ว login ผิดอะไร ครับ
Code (login) ผิดอะไรครับ ex.
<?php 

    session_start();

    if (isset($_POST['username'])) {

        include('connection.php');

        $username = $_POST['username'];
        $password = $_POST['password'];
        $passwordenc = md5($password);

        $query = "SELECT * FROM user WHERE username = '$username' AND password = '$passwordenc'";

        $result = mysqli_query($conn, $query);

        if (mysqli_num_rows($result) == 1) {

            $row = mysqli_fetch_array($result);

            $_SESSION['userid'] = $row['id'];
            $_SESSION['user'] = $row['firstname'] . " " . $row['lastname'];
            $_SESSION['userlevel'] = $row['userlevel'];

            if ($_SESSION['userlevel'] == 'a') {
                header("Location: admin_page.php");
            }

            if ($_SESSION['userlevel'] == 'm') {
                header("Location: user_page.php");
            }
        } else {
            echo "<script>alert('User หรือ Password ไม่ถูกต้อง);</script>";
        }

    } else {
        header("Location: index.php");
    }


?>




ประวัติการแก้ไข
2021-11-16 15:30:19
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-16 15:28:39 By : TeeTs
 


 

No. 21



โพสกระทู้ ( 245 )
บทความ ( 0 )



สถานะออฟไลน์


Quote:
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();
    }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-11-17 14:40:03 By : TeeTs
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ป้องกันการ back กลับ หลังจาก login, logout ออกไปแล้ว ทำไมยัง back กลับปกติได้ครับ หรือทำผิดพลาด ชี้แนะด้วยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่