Session คือ ข้อมูลที่ web application
ใช้ทำการจัดเก็บตรวจสอบข้อมูลของผู้เข้ามาใช้งานเว็บนั้น ๆ เรานิยมใช้
Session สำหรับการติดตาม user ใน ระบบ login เพื่อตรวจสอบความคงอยู่ของ
user รายนั้น ๆ ในระบบขอเรา
ps. Perl ไม่มี Session มาให้เรา เราจำเป็นต้องทำการลงตัวโมดูลที่ชื่อว่า
kSession เสียก่อน ซึ่งคุณสามารถ
Download ได้จาก http://ppm.activestate.com/PPMPackages/zips/
การ Download ให้เลือกให้ตรงกับ version ของ Perl ที่คุณใช้งาน
การสร้างและการเรียกใช้งาน Session
ของ Perl
session.cgi สำหรับการทดสอบส่งค่า
Session
#!usr/bin/perl
use CGI;
use CGI::kSession;
use CGI::Cookie;
my $cgi = new CGI;
my $s = new CGI::kSession(lifetime=>30,path=>'./temp/',id=>$cgi->param("SID"));
# กำหนดอายุของ Session เป็น 30 นาที และกำหนดให้บันทึกที่
temp และหากต้องการกำหนดชื่อ ID ของ Session ให้เราทำการกำหนดได้เพิ่มเติมจาก
id=> (หากไม่กำหนดจะทำการ
random id ขึ้นเอง)
$s->start();
$cookie= $s->id();
$s->register("website"); # ลงทะเบียน
Session ที่ชื่อว่า website
$s->set("website","dwthai.com"); #กำหนด
Session ที่ชื่อว่า website มีค่า dwthai.com
# นำ $cookie ที่ได้มาส่งไปยังไฟล์ Cookie
my $c = new CGI::Cookie(-name=>'MySession',-value=>$cookie);
print "Set-Cookie: $c\n"; #ส่ง Cookie
ไปเพื่อไว้ใช้อ้างอิงกับ Session
print "Content-type:text/html\n\n";
print "<a href='session2.cgi'>view</a>";
#สร้าง link ไปยังไฟล์ session2.cgi เพื่อทดสอบการอ่านค่าจาก
Session
session2.cgi สำหรับการทดสอบรับค่า
Session
#!/usr/bin/perl
use CGI;
use CGI::kSession;
use CGI::Cookie;
# อ่านค่าจาก Cookie
%cookies = fetch CGI::Cookie;$id=$cookies{'MySession'}->value;
# เริ่ม Session
my $s = new CGI::kSession(lifetime=>30,path=>"./temp/",id=>$id);
$s->start();
#########################
$website= $s->get("website");
# อ่านค่าจาก Session ที่เราทำการส่งไปจากไฟล์ session.cgi
print "Content-type:text/html\n\n";
print $website;
#แสดงค่าที่ได้จาก Session
|