เขียน เก็บ session ยังไงให้อยู่ตลอด

เริ่มโดย EixQzUnG, 12 กุมภาพันธ์ 2008, 16:21:23

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

EixQzUnG

สวัสดี ครับพ่อแม่พี่น้อง


พอดี ผมหัดเขียน ระบบ login นะคับ


แล้ว ผมทำการ เก็บ session ตัวอย่าง $_SESSION['user'];


พอ login ได้ เวลาผ่านไป ไม่ถึง 30 นาที ค่า session นู๋หาย (ยังไม่ได้ปิด page นั้น)

จะเขียนยังไงให้จดจำ ไว้ตลอด เหมือน บางเว๊ปนะ ครับ หลัก กานพอจะ อธิบายได้ไหมคับ


ปล $session_start(); ก้อใช้งานแล้ว ขาดอะไรตกไปอีกนะ
ขอบคุณครับ

mail4k

PHP ผมยังไม่ค่อยได้ศึกษา แต่คิดว่าน่าจะหลักการเดียวกัน คือผมเคยเขียนใช้ asp ก็ต้องเก็บทำงานคู่กับ คุกกี้ ไปด้วยน่ะครับ ตรวจสอบร่วมกัน
เคยเก็บแค่ session อย่างเดียวมันก็หลุดน่ะครับ

siamwebthai

session อยู่ตลอดไม่ได้ครับ ถ้าปิดหน้า Browser session ก็ถูกทำลาย
ดังนั้นถ้าอยากให้ Login อยู่ตลอดต้องใช้ cookie

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

คุณสามารถสร้าง cookie ได้ด้วยฟังก์ชั่น setcookie() จำไว้ด้วยว่า ฟังก์ชั่นนี้ต้องใช้ก่อนแท็กเปิด <HTML> มาดูรูปแบบกัน
setcookie(name, value, expire, path, domain);

name หมายถึง ชื่อของ cookie
value หมายถึง ค่าของ cookie
expire หมายถึง วันที่หมดอายุของ cookie
path หมายถึง path directory ที่สามารถเรียกใช้ cookie
domain หมายถึง ชื่อของเว็ปเซิร์ปเวอร์ที่สามารถใช้ cookie

มาดูตัวอย่างกัน ในที่นี้ ชื่อ cookie คือ ck มีค่าคือ "hello" มีอายุใช้งาน 1 ชั่วโมง หรือ 3600 วินาที

<?php
setcookie("ck", "hello", time()+3600);
?><html>
<body><p>
cookie ถูกเซ็ทแล้ว
</p></body>
</html>


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

การเรียก cookie มาใช้งาน

เมื่อ cookie ถูกเซ็ทแล้ว คุณสามารถเรียก cookie มาใช้งานได้ เหมือนเป็นตัวแปร มาดูตัวอย่างกัน

Tip: ใช้ฟังก์ชั่น isset() ตรวจสอบว่า cookie มีการเซ็ทแล้วหรือยัง 
<html>
<body><?php
if (isset($_COOKIE["ck"]))
echo "ยินดีต้อนรับ " . $_COOKIE["ck"] . "!<br />";
else
echo "cookie ยังไม่ถูกเซ็ท!<br />";
?></body>
</html>


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

การลบ cookie

เมื่อไรที่คุณจะทำการลบ cookies คุณต้องแน่ใจก่อนว่าเวลาหมดอายุต้องน้อยกว่าเวลาที่เซ็ทใหม่

<?php
// set the expiration date to one hour agosetcookie("ck", "", time()-3600);
?>
ศึกษาเพิ่มเติมได้จาก
hxxp://www.phpstreet.com

[direct=http://www.lsjewelrygroup.com//]แหวนหมั้น ห้างเพชรหลีเส็ง [/direct]  Dropshipจิวเวลรี่พรีเมี่ยม

Ads

ละเอียดดีครับ


สงสัยนิดนึงว่าบอทกินคุ๊กกี้ได้ไหม ถ้าบอทกินคุ๊กกี้ไม่ได้ จะได้เอาวิธีนี้มาแยกว่า มาน..เปง..บอท.. หรือเปล่า

tony

ใช้คุ๊กกี้ร่วมด้วยนะครับ

$_COOKIE['my_cookie_name'] = 'Oreo';

:D
ไม่ค่อยว่างมาดูเท่าไร แต่หัวใจยังกิ๊ดตึ๋ง

EThaiZone

ผมเข้าใจว่าอยากใ้ช้ session เพราะข้อมูลไม่อยากเปิดเผย

วิธีนี้แนะนำให้ทำแคชค่า session ไว้่ครับ
ประยุกต์ใช้ serialize กับ unserialize นะครับ
โดยอ้างอิงค่าจาก session_id นะครับ ในการเก็บไฟล์

lowprofile

ผมไปค้นเจอมา มีคนแนะนำไว้ว่า
you can change the max lifetime for a session with the function ini_set().

<?php
ini_set
("session.gc_maxlifetime""18000");
?>

This will set the max lifetime of the script to 5 hours. You have to use this in every script that you want to change the default lifetime for.

if you want to know the lifetime of your current script, you can use:

<?php
echo ini_get("session.gc_maxlifetime");
?>



จากที่นี่ครับ
http://th.php.net/manual/en/function.session-cache-expire.php
ชีวิตนี้น้อยนัก

๏ พายเถิดพ่ออย่ารั้ง   รอพาย
จวนตะวันจักสาย   ส่องฟ้า
ของสดสิ่งควรขาย   จักขาด ค่าแฮ
ตลาดเลิกแล้วอ้า   บ่นอื้นเอาใคร ๚ะ๛


คราวนี้เป็นคราวเงินหมด
ธนาคาร : ไทยพาณิชย์ จำกัด (มหาชน) สาขา : อุดรธานี
ชื่อบัญชี : โครงการช่วยชาติโดยหลวงตามหาบัว ญาณสัมปันโน
เลขที่บัญชี : 510-2-83957-5

thenetxx

อ้างถึงจาก: EThaiZone ใน 12 กุมภาพันธ์ 2008, 19:47:41
ผมเข้าใจว่าอยากใ้ช้ session เพราะข้อมูลไม่อยากเปิดเผย

วิธีนี้แนะนำให้ทำแคชค่า session ไว้่ครับ
ประยุกต์ใช้ serialize กับ unserialize นะครับ
โดยอ้างอิงค่าจาก session_id นะครับ ในการเก็บไฟล์



เก่งดีครับ ตอนผมอายุเท่านี้ ผมยังไม่รู้เลย serialize คืออะไร  -*- :-[
Develop site but can't develop life
ASIA

EixQzUnG

ขอบคุณครับ แต่ ผม ไม่รู้ จัก  serialize กับ unserialize  เลยอะ  ;D :D :D :D