⊗ppPmAuSs 415 of 447 menu

การรับรองความถูกต้องผ่านเซสชันบน PHP

ระบบรับรองความถูกต้องของเราควรทำงานดังนี้: ผู้ใช้ที่ต้องการเข้าสู่ระบบบนเว็บไซต์ จะเข้าหน้า login.php ป้อนชื่อผู้ใช้และรหัสผ่านที่ถูกต้อง และ หลังจากนั้นก็สามารถเข้าไปยังหน้าต่างๆ ของเว็บไซต์ในสถานะที่เข้าสู่ระบบแล้ว

เพื่อให้หน้าอื่นๆ ของเว็บไซต์ทราบว่าผู้ใช้ของเราได้เข้าสู่ระบบแล้ว เราจำเป็นต้องเก็บเครื่องหมายแสดงสถานะนี้ไว้ในเซสชัน

ในตอนนี้ระบบรับรองความถูกต้องของเรายังใช้งานได้ไม่สมบูรณ์นัก เนื่องจากเรายังไม่ได้เชื่อมต่อเซสชัน และหน้าอื่นๆ ของเว็บไซต์ไม่สามารถทราบได้ว่าผู้ใช้เข้าสู่ระบบหรือไม่

เราจะเก็บเครื่องหมายการรับรองความถูกต้องไว้ในตัวแปรเซสชัน $_SESSION['auth'] - หากเขียนค่า true ไว้ แสดงว่าผู้ใช้ได้เข้าสู่ระบบแล้ว แต่ถ้าเป็น null แสดงว่ายังไม่ได้เข้าสู่ระบบ

ลองมาแก้ไขโค้ดของเราให้สอดคล้องกัน:

<?php session_start(); if (!empty($_POST['password']) and !empty($_POST['login'])) { $login = $_POST['login']; $password = $_POST['password']; $query = "SELECT * FROM users WHERE login='$login' AND password='$password'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { $_SESSION['auth'] = true; } else { // ป้อนชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง } } ?>

ตอนนี้บนหน้าใดๆ ของเว็บไซต์ เราสามารถตรวจสอบว่าผู้ใช้เข้าสู่ระบบหรือไม่ได้ด้วยวิธีนี้:

<?php if (!empty($_SESSION['auth'])) { } ?>

เราสามารถปิดเนื้อหาบนหน้าใดหน้าหนึ่งทั้งหมดสำหรับผู้ใช้ที่ไม่ได้เข้าสู่ระบบได้:

<?php if (!empty($_SESSION['auth'])): ?> <!DOCTYPE html> <html> <head> </head> <body> <p>เนื้อหาสำหรับผู้ใช้ที่เข้าสู่ระบบแล้วเท่านั้น</p> </body> </html> <?php else: ?> <p>กรุณาเข้าสู่ระบบ</p> <?php endif; ?>

หรือปิดเฉพาะบางส่วนของหน้าเว็บ:

<!DOCTYPE html> <html> <head> </head> <body> <p>เนื้อหาสำหรับผู้ใช้ทุกคน</p> <?php if (!empty($_SESSION['auth'])) { echo 'เนื้อหาสำหรับผู้ใช้ที่เข้าสู่ระบบแล้วเท่านั้น'; } ?> <p>เนื้อหาสำหรับผู้ใช้ทุกคน</p> </body> </html>

สมมติว่าในเว็บไซต์ของเรา นอกจากหน้า login.php แล้ว ยังมีหน้า 1.php, 2.php และ 3.php ด้วย ให้คุณทำให้มีเพียงผู้ใช้ที่เข้าสู่ระบบแล้วเท่านั้นที่สามารถเข้าถึงหน้าต่างๆ เหล่านี้ได้

สมมติว่าในเว็บไซต์ของเรามีหน้า index.php ด้วย ให้คุณทำให้บางส่วนของหน้านี้เปิดให้ผู้ใช้ทุกคน ในขณะที่บางส่วนเปิดให้เฉพาะผู้ใช้ที่เข้าสู่ระบบแล้ว

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

ทำให้เมื่อผู้ใช้เข้าสู่หน้าใดๆ ของเว็บไซต์ ผู้ใช้ที่เข้าสู่ระบบแล้วจะเห็นชื่อผู้ใช้ของตนเอง ส่วนผู้ใช้ที่ยังไม่ได้เข้าสู่ระบบจะเห็นลิงก์ไปยังหน้าเข้าสู่ระบบ

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ