PHP Cookies

คุกกี้ทั่วไปใช้เพื่อระบุผู้ใช้。

มีคุกกี้อะไรบ้าง?

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

ฝากคุกกี้อย่างไร?

ฟังก์ชัน setcookie() ใช้ในการตั้งคุกกี้

หมายเหตุ:ฟังก์ชัน setcookie() ต้องอยู่ก่อนแท็ก <html> ของ HTML

สัญลักษณ์

setcookie(name, value, expire, path, domain);

ตัวอย่าง

ในตัวอย่างด้านล่างนี้,เราจะสร้างคุกกี้ที่มีชื่อ "user" และกำหนดค่าของมันเป็น "Alex Porter" และกำหนดให้คุกกี้หมดอายุหลังจากหนึ่งชั่วโมง:

<?php 
setcookie("user", "Alex Porter", time()+3600);
?>
<html>
<body>
</body>
</html>

หมายเหตุ:ขณะที่ส่งคุกกี้ออกไป ค่าคุกกี้จะถูก URL encode อัตโนมัติ และ decode อัตโนมัติเมื่อกู้คืน (เพื่อป้องกัน URL encode ให้ใช้ setrawcookie() แทน)

ฝากคุกกี้อย่างไร?

ตัวแปร $_COOKIE ของ PHP ใช้ในการกู้ค่าคุกกี้

ในตัวอย่างด้านล่างนี้,เราได้กู้ค่าคุกกี้ที่มีชื่อ "user" และแสดงมันบนหน้าเว็บไซต์:

<?php
// พิมพ์คุกกี้
echo $_COOKIE["user"];
// วิธีเพื่อดูคุกกี้ทั้งหมด
print_r($_COOKIE);
?>

ในตัวอย่างด้านล่างนี้,เราใช้ฟังก์ชัน isset() มาตรวจสอบว่าคุณได้ตั้งคุกกี้แล้วหรือไม่:

<html>
<body>
<?php
if (isset($_COOKIE["user"]))
  echo "สวัสดี " . $_COOKIE["user"] . "!\n";
else
  echo "สวัสดีนักเยี่ยมกับการบูทร์!\n";
?>
</body>
</html>

ทางไหนที่จะลบ cookie?

เมื่อลบ cookie คุณควรเปลี่ยนค่าวันหมดอายุเป็นเวลาที่ผ่านมา

ตัวอย่างที่เคยถูกลบไป:

<?php 
// set the expiration date to one hour ago
setcookie("user", "", time()-3600);
?>

ทำไมต้องทำในกรณีที่บราวเซอร์ไม่สนับสนุน cookie?

ถ้าในโปรแกรมของคุณมีบราวเซอร์ที่ไม่สนับสนุน cookie คุณจะต้องใช้วิธีอื่นเพื่อส่งข้อมูลระหว่างหน้าเว็บที่แยกกัน หนึ่งในนั้นคือการส่งข้อมูลผ่านฟอร์ม (เราได้เรียกและเรียกค่าฟอร์มและข้อมูลของผู้ใช้ในบทเรียนนี้แล้ว)

ฟอร์มด้านล่างนี้จะส่งข้อมูลผู้ใช้เข้าไปยัง "welcome.php" เมื่อผู้ใช้กดปุ่มส่ง:

<html>
<body>
<form action="welcome.php" method="post">
ชื่อ: <input type="text" name="name" />
อายุ: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>

เอาค่าจาก "welcome.php" มา อย่างเช่นนี้:

<html>
<body>
ยินดีต้อนรับ <?php echo $_POST["name"]; ?>.<br />
คุณมีอายุ <?php echo $_POST["age"]; ?> ปี.
</body>
</html>