บทช่วยสอนPHP

PHP HOME แนะนำ PHP การติดตั้ง PHP PHP ไวยากรณ์ ความคิดเห็น PHP ตัวแปร PHP PHP Echo / พิมพ์ ประเภทข้อมูล PHP PHP Strings หมายเลข PHP PHP คณิตศาสตร์ ค่าคงที่ PHP ตัวดำเนินการ PHP PHP If...Else...Elseif PHP Switch PHP Loops ฟังก์ชัน PHP PHP Arrays PHP Superglobals PHP RegEx

แบบฟอร์มPHP

การจัดการแบบฟอร์ม PHP การตรวจสอบแบบฟอร์ม PHP ต้องใช้แบบฟอร์ม PHP URL แบบฟอร์ม PHP/อีเมล แบบฟอร์ม PHP เสร็จสมบูรณ์

PHPขั้นสูง

วันที่และเวลา PHP รวม PHP การจัดการไฟล์ PHP ไฟล์ PHP เปิด/อ่าน สร้าง/เขียนไฟล์ PHP อัพโหลดไฟล์ PHP คุกกี้ PHP PHP Sessions ตัวกรอง PHP ตัวกรอง PHP ขั้นสูง ฟังก์ชันเรียกกลับของ PHP PHP JSON ข้อยกเว้น PHP

PHP OOP

PHP OOP คืออะไร คลาส PHP/วัตถุ ตัวสร้าง PHP PHP Destructor PHP Access Modifiers PHP Inheritance ค่าคงที่ PHP PHP Abstract Classes อินเทอร์เฟซ PHP PHP ลักษณะ PHP Static Methods PHP คุณสมบัติคงที่ PHP เนมสเปซ PHP Iterables

ฐานข้อมูลMySQL

ฐานข้อมูล MySQL MySQL Connect MySQL สร้าง DB MySQL สร้างตาราง MySQL แทรกข้อมูล MySQL รับ ID ล่าสุด MySQL แทรกหลายรายการ MySQL ที่เตรียมไว้ MySQL Select Data MySQL Where MySQL สั่งซื้อโดย MySQL ลบข้อมูล ข้อมูลอัพเดต MySQL MySQL Limit Data

PHP XML

PHP XML Parsers PHP SimpleXML Parser PHP SimpleXML - รับ PHP XML Expat PHP XML DOM

PHP - AJAX

บทนำ AJAX AJAX PHP ฐานข้อมูล AJAX AJAX XML AJAX ค้นหาสด AJAX โพล

ตัวอย่างPHP

ตัวอย่าง PHP PHP คอมไพเลอร์ แบบทดสอบ PHP แบบฝึกหัด PHP ใบรับรอง PHP

ข้อมูลอ้างอิงPHP

ภาพรวม PHP PHP Array ปฏิทิน PHP PHP วันที่ ไดเรกทอรี PHP ข้อผิดพลาด PHP ข้อยกเว้น PHP ระบบไฟล์ PHP ตัวกรอง PHP PHP FTP PHP JSON คีย์เวิร์ด PHP PHP Libxml PHP Mail PHP คณิตศาสตร์ PHP เบ็ดเตล็ด PHP MySQLi เครือข่าย PHP การควบคุมเอาต์พุต PHP PHP RegEx PHP SimpleXML PHP Stream PHP String การจัดการตัวแปร PHP PHP XML Parser PHP Zip เขตเวลา PHP

PHP Sessions


เซสชันคือวิธีการจัดเก็บข้อมูล (ในตัวแปร) เพื่อใช้ในหลาย ๆ หน้า

ข้อมูลจะไม่ถูกเก็บไว้ในคอมพิวเตอร์ของผู้ใช้ต่างจากคุกกี้


เซสชัน PHP คืออะไร?

เมื่อคุณทำงานกับแอปพลิเคชัน คุณต้องเปิดแอปพลิเคชันนั้น ทำการเปลี่ยนแปลงบางอย่าง จากนั้นจึงปิดแอปพลิเคชันนั้น นี้เป็นเหมือนเซสชั่น คอมพิวเตอร์รู้ว่าคุณเป็นใคร มันรู้เมื่อคุณเริ่มแอปพลิเคชันและเมื่อคุณสิ้นสุด แต่มีปัญหาหนึ่งบนอินเทอร์เน็ต: เว็บเซิร์ฟเวอร์ไม่รู้ว่าคุณเป็นใครหรือทำอะไร เพราะที่อยู่ HTTP ไม่ได้รักษาสถานะไว้

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

ดังนั้น; ตัวแปรเซสชันเก็บข้อมูลเกี่ยวกับผู้ใช้รายเดียว และใช้ได้กับทุกหน้าในแอปพลิเคชันเดียว

เคล็ดลับ:หากคุณต้องการที่เก็บข้อมูลถาวร คุณอาจต้องการจัดเก็บข้อมูลใน ฐานข้อมูล


เริ่มเซสชัน PHP

เซสชันเริ่มต้นด้วยsession_start()ฟังก์ชัน

ตัวแปรเซสชันถูกกำหนดด้วยตัวแปรโกลบอลของ PHP: $_SESSION

ตอนนี้ มาสร้างหน้าใหม่ชื่อ "demo_session1.php" ในหน้านี้ เราจะเริ่มเซสชัน PHP ใหม่และตั้งค่าตัวแปรของเซสชัน:

ตัวอย่าง

<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>

</body>
</html>

หมายเหตุ: ฟังก์ชัน นี้session_start()จะต้องเป็นสิ่งแรกในเอกสารของคุณ ก่อนแท็ก HTML ใดๆ



รับค่าตัวแปรเซสชัน PHP

ต่อไป เราสร้างหน้าใหม่ชื่อ "demo_session2.php" จากหน้านี้ เราจะเข้าถึงข้อมูลเซสชันที่เราตั้งค่าไว้ในหน้าแรก ("demo_session1.php")

โปรดสังเกตว่าตัวแปรของเซสชันจะไม่ถูกส่งผ่านไปยังหน้าใหม่แต่ละหน้า แต่จะถูกดึงมาจากเซสชันที่เราเปิดที่จุดเริ่มต้นของแต่ละหน้า ( session_start())

นอกจากนี้ ให้สังเกตว่าค่าตัวแปรเซสชันทั้งหมดถูกเก็บไว้ในตัวแปร $_SESSION ส่วนกลาง:

ตัวอย่าง

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// Echo session variables that were set on previous page
echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>

</body>
</html>

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

ตัวอย่าง

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
print_r($_SESSION);
?>

</body>
</html>

มันทำงานอย่างไร? มันรู้ได้ยังไงว่าเป็นผม?

เซสชันส่วนใหญ่ตั้งค่าคีย์ผู้ใช้บนคอมพิวเตอร์ของผู้ใช้ที่มีลักษณะดังนี้: 765487cf34ert8dede5a562e4f3a7e12 จากนั้น เมื่อเปิดเซสชันบนหน้าอื่น ระบบจะสแกนคอมพิวเตอร์เพื่อหาคีย์ผู้ใช้ หากมีการแข่งขัน มันจะเข้าถึงเซสชันนั้น หากไม่มี มันก็จะเริ่มต้นเซสชันใหม่


แก้ไขตัวแปรเซสชัน PHP

หากต้องการเปลี่ยนตัวแปรเซสชัน ให้เขียนทับ:

ตัวอย่าง

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// to change a session variable, just overwrite it
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>

</body>
</html>

ทำลาย PHP Session

หากต้องการลบตัวแปรเซสชันส่วนกลางทั้งหมดและทำลายเซสชัน ให้ใช้session_unset() และsession_destroy():

ตัวอย่าง

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// remove all session variables
session_unset();

// destroy the session
session_destroy();
?>

</body>
</html>

แบบฝึกหัด PHP

ทดสอบตัวเองด้วยแบบฝึกหัด

ออกกำลังกาย:

สร้างตัวแปรเซสชันชื่อ "favcolor"

session_start();
["favcolor"] = "green";