ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingเขียน เก็บ session ยังไงให้อยู่ตลอด
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: เขียน เก็บ session ยังไงให้อยู่ตลอด  (อ่าน 5365 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
EixQzUnG
สมุนแก๊งเสียว
*

พลังน้ำใจ: 34
ออฟไลน์ ออฟไลน์

กระทู้: 996



ดูรายละเอียด
« เมื่อ: 12 กุมภาพันธ์ 2008, 16:21:23 »

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


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


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


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

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


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

mail4k
ก๊วนเสียว
*

พลังน้ำใจ: 11
ออฟไลน์ ออฟไลน์

กระทู้: 373



ดูรายละเอียด
« ตอบ #1 เมื่อ: 12 กุมภาพันธ์ 2008, 18:20:57 »

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

พลังน้ำใจ: 68
ออฟไลน์ ออฟไลน์

กระทู้: 557



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 12 กุมภาพันธ์ 2008, 19:01:06 »

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

บันทึกการเข้า

Ads
สมุนแก๊งเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 996



ดูรายละเอียด
« ตอบ #3 เมื่อ: 12 กุมภาพันธ์ 2008, 19:11:49 »

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


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

พลังน้ำใจ: 6
ออฟไลน์ ออฟไลน์

กระทู้: 4,079



ดูรายละเอียด
« ตอบ #4 เมื่อ: 12 กุมภาพันธ์ 2008, 19:12:53 »

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

โค๊ด:
$_COOKIE['my_cookie_name'] = 'Oreo';

 Cheesy
บันทึกการเข้า

ไม่ค่อยว่างมาดูเท่าไร แต่หัวใจยังกิ๊ดตึ๋ง
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,518



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 12 กุมภาพันธ์ 2008, 19:47:41 »

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

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

lowprofile
คนรักเสียว
*

พลังน้ำใจ: 11
ออฟไลน์ ออฟไลน์

กระทู้: 189



ดูรายละเอียด
« ตอบ #6 เมื่อ: 12 กุมภาพันธ์ 2008, 21:05:36 »

ผมไปค้นเจอมา มีคนแนะนำไว้ว่า
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/fu...ction.session-cache-expire.php
บันทึกการเข้า

ชีวิตนี้น้อยนัก

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


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

พลังน้ำใจ: 41
ออฟไลน์ ออฟไลน์

กระทู้: 1,986



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 14 กุมภาพันธ์ 2008, 09:21:24 »

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

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



เก่งดีครับ ตอนผมอายุเท่านี้ ผมยังไม่รู้เลย serialize คืออะไร  -*- Embarrassed
บันทึกการเข้า

Develop site but can't develop life
ASIA
EixQzUnG
สมุนแก๊งเสียว
*

พลังน้ำใจ: 34
ออฟไลน์ ออฟไลน์

กระทู้: 996



ดูรายละเอียด
« ตอบ #8 เมื่อ: 14 กุมภาพันธ์ 2008, 10:04:08 »

ขอบคุณครับ แต่ ผม ไม่รู้ จัก  serialize กับ unserialize  เลยอะ  Grin Cheesy Cheesy Cheesy
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์