ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: EixQzUnG ที่ 12 กุมภาพันธ์ 2008, 16:21:23



หัวข้อ: เขียน เก็บ session ยังไงให้อยู่ตลอด
เริ่มหัวข้อโดย: EixQzUnG ที่ 12 กุมภาพันธ์ 2008, 16:21:23
สวัสดี ครับพ่อแม่พี่น้อง


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


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


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

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


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


หัวข้อ: Re: เขียน เก็บ session ยังไงให้อยู่ตลอด
เริ่มหัวข้อโดย: mail4k ที่ 12 กุมภาพันธ์ 2008, 18:20:57
PHP ผมยังไม่ค่อยได้ศึกษา แต่คิดว่าน่าจะหลักการเดียวกัน คือผมเคยเขียนใช้ asp ก็ต้องเก็บทำงานคู่กับ คุกกี้ ไปด้วยน่ะครับ ตรวจสอบร่วมกัน
เคยเก็บแค่ session อย่างเดียวมันก็หลุดน่ะครับ


หัวข้อ: Re: เขียน เก็บ session ยังไงให้อยู่ตลอด
เริ่มหัวข้อโดย: siamwebthai ที่ 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



หัวข้อ: Re: เขียน เก็บ session ยังไงให้อยู่ตลอด
เริ่มหัวข้อโดย: Ads ที่ 12 กุมภาพันธ์ 2008, 19:11:49
ละเอียดดีครับ


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


หัวข้อ: Re: เขียน เก็บ session ยังไงให้อยู่ตลอด
เริ่มหัวข้อโดย: tony ที่ 12 กุมภาพันธ์ 2008, 19:12:53
ใช้คุ๊กกี้ร่วมด้วยนะครับ

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

 :D


หัวข้อ: Re: เขียน เก็บ session ยังไงให้อยู่ตลอด
เริ่มหัวข้อโดย: EThaiZone ที่ 12 กุมภาพันธ์ 2008, 19:47:41
ผมเข้าใจว่าอยากใ้ช้ session เพราะข้อมูลไม่อยากเปิดเผย

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


หัวข้อ: Re: เขียน เก็บ session ยังไงให้อยู่ตลอด
เริ่มหัวข้อโดย: lowprofile ที่ 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/function.session-cache-expire.php


หัวข้อ: Re: เขียน เก็บ session ยังไงให้อยู่ตลอด
เริ่มหัวข้อโดย: thenetxx ที่ 14 กุมภาพันธ์ 2008, 09:21:24
ผมเข้าใจว่าอยากใ้ช้ session เพราะข้อมูลไม่อยากเปิดเผย

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



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


หัวข้อ: Re: เขียน เก็บ session ยังไงให้อยู่ตลอด
เริ่มหัวข้อโดย: EixQzUnG ที่ 14 กุมภาพันธ์ 2008, 10:04:08
ขอบคุณครับ แต่ ผม ไม่รู้ จัก  serialize กับ unserialize  เลยอะ  ;D :D :D :D