2013/07/28

Session-ий тухай.




SESSION гэж юу вэ? session_start(); session_destroy();...



SESSION гэж юу болох, хэрхэн ашиглах талаар хүргэе. Хэн нэгний ямар нэгэн вэбсайт үзэж байх агшныг нэг SESSION  гэж авч үзэж болно. хэрэв та нэг дор хоёр вэбсайт үзэж байгаа бол тухайн тохиолдолд хоёр SESSION сервер дээр үүсэж байдаг.
Сервер дээр SESSION  үүсэх гэдэг нь таныг ямар нэгэн сайт руу хандахад тухайн серверийн аль нэг хэсэгт ямар нэгэн файл үүсэх бөгөөд /заавал файл байх албагүй / SESSION-ий хувьсагч утгуудийг JSON хэлбэртэйгээр хадгалдаг. Хөгжүүлэгчид маань хүн тус бүрт зориулагдах утгуудыг жишээ нь хэрэглэгчийн нэр, хэрэглэгчийн дугаар, хандах эрх зэргийг SESSION-д хэрэглэгчийг холбогдсоны хадгалж тухайн хэрэглэгчид зориулсан мэдээллүүдийг зөв сонгон авч харуулахад ашиглах бөгөөд юунд зориулж ашиглах нь ганц үүгээр хязгаарлагдахгүй.


SESSION үүсгэх:

Ямар нэгэн сайт руу ороход PHPSESSID cookie үүсэх PHPSESSID нь серверийн PHP-н тохиргооноос шалтгаалаад өөр байж болно. Тухайн cookie-н утгыг А гэж үзвэл sess_A нэртэй файл сервер дээр үүснэ. Уг файлд хувьсагч болон утгуудыг оноож өгөхийн тулд браузерт ямар нэгэн хоосон зай болон тэмдэгт хэвлэгдэж гарахаас өмнө sessio_start(); функцыг ашиглана.

Код:
';
...
...
?>



SESSION-ий хувьсагчид утга оноох

SESSION-ээ эхлүүлснийг зарласны дараа SESSION-д ямар утга ямар хэлбэртэй байхыг array хэлбэрээр оноож өгнө.
Код:
';
$_SESSION['username'] = 'Batmunkh';
$_SESSION['user_type'] = 'Admin';
$_SESSION['products']['in_basket'] = '1,3,88,34';



SESSION-ий хувьсагчийг ашиглах
Дээрхи код нь $_SESSION-д  array хэлбэрээр хувьсагчуудыг үүсгэж утгыг оноож өгч буй явдал бөгөөд ашиглахдаа

Код:
';
echo 'Username: '.$_SESSION['username'] . '
';
echo 'user type: '.$_SESSION['user_type'] . '
';
echo 'Produc ids in Basket: '.$_SESSION['products']['in_basket']


гэх мэт ашиглана.

SESSION-ий хувьсагчийг устгах
SESSION хувьсагчийн утгыг арилгахдаа unset() хувьсагч ашиглаж болох бөгөөд session_destroy() функцын тусламжтайгаар SESSION-ий бүх хувьсагчийг устгаж болно.


Код:
session_start();
session_destroy();
echo 'Username: '.$_SESSION['username'] . '
';
Уг тохиолдолд хувьсагчийг ашиглахаас өмнө SESSION-г устгаж байгаа тулл тухайн хувьсагч устгаж юу ч хэвлэгдэн гарахгүй.

session_start() функцыг хуудасны хамгийн дээр байрлуулах нь тохиромжтой. Хэрэв нэгэнт дуудсан session_start() функц доор дахин хэрэглэгдэх шаардлагагүй бөгөөд өмнө дуудагдсан бол өмнөх SESSION-г үргэлжлүүлэн дуудна.

Анхааруулга:
Уг функцыг ашиглахаас өмнө браузерт ямар нэг таг жишээ html, body тэгээд ямар нэг юм хэвлэхээс  өмнө ашиглах хэрэгтэй бөгөөд уг алдааг гаргасан тохиолдолд HEADER ALREADY SENT BY..... алдаа заана.

1 comment:

Манай блогт тавтай морил!

Хуудас

Blogger Tips and TricksLatest Tips And TricksBlogger Tricks

Чат

Хандалт

Санал асуулга

[Zoo-ParK] By:DuCk!. Powered by Blogger.

- Copyright © .