Хичээлийн нэр:   Динамик вэб програмчлал Хичээлийн төрөл: Лекц /№12/ Багшийн нэр: Г.Өсөхжаргал Cookie  ба  Session
Хичээлийн агуулга Session  болон  Cookie  тухай Cookie Session
Cookie  болон  Session Session   болон  Cookie   гэдэг нь вэб програмчлалын чухал ойлголтууд бөгөөд эдгээр нь  өгөгдөл хадгалах нэг хэлбэр  юм. Өгөгдлийг хадгалах хэлбэр:  ( бидний үзсэн ) Хувьсагчид  – тухайн сервэрийн санах ойд хадгална гэсэн үг бөгөөд түр зуурийн зүйл, нэг удаагийн ачаалалт Өгөгдлийн санд  - өгөгдлийн файлд хадгалах бөгөөд удаан хугацааны зүйл
Cookie  болон  Session Session  болон  Cookie   – вэб сайтыг ачаалж байх бүхий л хугацаанд өгөгдлийг өөртөө хадгалах бөгөөд ямар ч үед  ( вэб ачаалсан байх )  түүнд хандах бололцоотой байна.
Cookie  болон  Session Хэрэглэгч вэбд нэвтрээд вэбийн хуудас болгоныг сервэр дээрээс татах  (download)  маягаар үздэг ба хуудас болгоныг үзэхдээ холболт хийдэг. Вэб сайтыг үзэхдээ хуудаснаас хуудас дамжиж байдаг учраас вэбийн хуудас хооронд ямар нэгэн үйлдэл болон утга дамжуулах шаардлага их гардаг.  Өөрөөр хэлбэл вэб сайтыг ажиллаж эхлэнгүүт үүсээд вэб сайтаас гарах үед буюу вэб браузерийг хаангуут устах тогтмол санах ой хэрэгтэй болдог.
Cookie  болон  Session Үүнийг дараах хоёр аргаар шийдвэрлэж болдог. Хэрэглэгчийн браузер ажиллаж байгаа компьютер дээрх тусгай нэг файлд тухайн мэдээлэл буюу утгаа хадгалах. Үүнийг  Cookie   гэж нэрлэнэ. Вэб сайт ажиллаж байгаа сервэр компьютер дээрх тусгай файлд  тухайн мэдээлэл буюу утгаа хадгалах. Үүнийг  Session   гэж нэрлэнэ.
Cookie Cookie  гэдэг нь маш жижиг хэмжээний өгөгдлийг сервэрээс  буюу сервэр талын веб хэлний үйл ажиллагааны үр дүнгээс гаргаж аваад хэрэглэгчийн браузер дээр хадгалах жижиг файлыг хэлнэ. Браузераар вэб хуудсыг үзэхийг яг тэр компьютерээс хүсэх бүрт, тэр хүсэлт нь  Cookie -рүү илгээгдэх болно.
Cookie Аливаа сервэр нь нэг зэрэг 20  cookie- г хэрэглэгчийн браузерт хадгалах чадвартай байдаг. Нэг  cookie  нь нэр, утга, хадгалах хугацаа, хадгалагдсан зам зэрэг мэдээллийг өөртөө хадгалдаг бөгөөд дунджаар 4 KB- с хэтрэхгүй хэмжээтэй байна.
Cookie- г үүсгэх Cookie- г үүсгэхдээ  setcookie()   функцийг ашиглана. Бичигдэх хэлбэр: setcookie(name, value, expire);   name  – cookie- ийн нэр value  –  cookie- ийн утга expire   -  cookie- ийн дуусах хугацаа Тайлбар : Cookie  үүсгэх гэж байгаа бол   браузераар ямар нэг өгөгдөл дамжихаас өмнө дээрх функцийг дуудаж ажиллуулах ёстой учир функцийг  кодын хамгийн дээд талд тодорхойлно.
Cookie- г үүсгэх Жишээ: <?php   setcookie(&quot;user&quot;,“Bolor&quot;, time()+3600);  ?>   <html>   … ,, User  нэртэй  cookie- г  Bolor  гэсэн утгатайгаар дуусах хугацаа нь одоогоос цагийн дараа/3600  sec / гэж үүсгэжээ. Дуусах хугацааг тодорхойлохдоо:  60 sec * 60 min * 24 hours * 30 days   гэсэн   загвараар тодорхойлно.
Cookie- ийн утгыг гаргаж авах Cookie- ийн утгыг гаргаж авахдаа   тухайн сайтанд үүссэн  cookie- үүүдийг агуулж байдаг  $_COOKIE   глобал массивт нэрээр нь түлхүүр хийж хандана. Жишээ: <?php if (isset($_COOKIE[&quot;user&quot;])) echo &quot;Welcome &quot; . $_COOKIE[&quot;user&quot;] . &quot;!<br />&quot;; else echo &quot;Welcome guest!<br />&quot;; ?>
Үүсчихсэн  cookie- ийг устгах Cookie- ийг үүсгэхдээ дуусах хугацааг зааж өгдөг бөгөөд тэр хугацаа дуусмагц  cookie  өөрөө устдаг. Харин хугацаанаас нь өмнө устгах шаардлага гарвал мөн  setcookie()  функцийг ашиглана.  Жишээ: <?php setcookie(&quot;user&quot;, &quot;&quot;, time()-3600);  ?> Дуусах хугацаа нь өнгөрсөн байх ёстой өгөөд одоогийн хугацаанаас хассан хугацаа зааж өгөхөд  cookie  устана.
Cookie  хэрэглэх тохиолдолууд Өөрийн вэб сайтандаа: Хэрэглэгчийн  ID Хамгийн анх нэвтэрсэн огноо Хамгийн сүүлд нэвтэрсэн огноо Хэдэн удаа зочилсон тоо Сайтанд өнгөрүүлсан нийт хугацаа гэх мэтийн зүйлүүлийг хадгалж болно.
Session Вэб сайт ажиллаж байгаа сервэр компьютер дээр өгөгдлийн тусгай файлд хадгалан хуудаснаас хуудсанд дамжихдаа тухайн хадгалсан утгаа хэрэгтэй газраа авч ашиглахыг  session  гэж нэрлэнэ. Мөн  session  нь вэб сервэр болон веб браузер хоёрын хоорондын харилцааг хангадаг бөгөөд динамик вебийн орчин дахь маш чухал зүйл бөгөөд  cookie- ээс илүү чухал үүрэгтэй.
Session Session  нь дараах 2 хэсгээс бүрдэнэ. Session  хувьсагч Session ID Session  хувьсагчид нь өөртөө вэб програм болон хэрэглэгчийн хоорондын үйл ажиллагаатай холбоотой мэдээллийг хадгалдаг. Session  хувьсагчид нь вэб сервэр дээрээ  session ID  ашиглан хадгалагддаг.
Session Session  эхлэхэд тухайн хэрэглэгчийн браузер өөртөө  session ID  авдаг.  session ID  нь 32 оронтой байдаг. Харин дараагийн удаагийн ачаалалт буюу сервэрлүү дамжуулсан хүсэлт өөрөө энэ  ID- ээ хадгалсаар явдаг. энэ  session ID  нь браузерийг хаахаас нааш устахгүйгээр хадгалагдсаар байдаг.  Хэрэглэгчийн браузер сервэрлүү хүсэлт дамжуулахад сервэр тухайн браузер дээр үүссэн  Session ID- аар тухайн браузерт зориулан  Session  хувьсагч үүсгэн хадгалаад дараагийн удаагийн хандалтуудад  Session ID- аар дамжуулан  session  хувьсагчид нь ханддаг
Session start.php PHPSessID=1234 PHPSessID=1234 PHPSessID=1234 Батын  Session Session  хувьсагчид: Start: 10:15 am Count=12 Web server Бат
Session- ыг эхлүүлэх Session -ыг эхлүүлэхдээ  session_start()   функцийг ашиглана. Энэ функцийг браузераар ямар нэг өгөгдөл дамжихаас өмнө буюу  php  хуудасныхаа хамгийн дээд талд байрлуулах хэрэгтэй session_start()   функц анх дуудагдахад  PHP  хэл дээр шинэ  session  файл үүсгэгдэн хадгалагдах бөгөөд файлын нэр нь  sess_  өргөтгөлийн араас тухайн  session   ID- г залгасан хэлбэрээр нэрлэгдсэн байдаг. C: // windows/temp  –ээс харж болно.
Session  хувьсагчдыг ашиглах session_start()   функцийг ашиглан  session  эхлүүлсэн бол  session- той ажиилах бололцоотой болно. Тухайн сервэр дээр зарлагдсан бүхий л  session- ууд нь  $_SESSION   глобал массивт хадгалагдах болно. Уг массивын түлхүүр үг нь  session  хувьсагчийн нэр, утга нь тухайн  session  хувьсагчийн утга байна.
Session  хувьсагчдыг ашиглах <?php session_start(); $_SESSION['views']=1; ?> <html> <body> <?php echo &quot;Pageviews=&quot;. $_SESSION['views']; ?> </body> </html>
Session  хувьсагчдыг ашиглах <?php session_start(); if(isset($_SESSION['views'])) $_SESSION['views']=$_SESSION['views']+1; else $_SESSION['views']=1; echo &quot;Views=&quot;. $_SESSION['views'];  ?>
Session  хувьсагчдыг устгах PHP  хэл дээр өөрийн  session- уудаа удирдан зохион байгуулахын тулд зарлагдаад, ашиглагдахаа больсон  session- уудаа устгаж байх хэрэгтэй. Session  устгахдаа: Аль нэг  session  хувьсагч устгах Бүх  session  хувьсагчдыг нийтээр нь устгах
Session  хувьсагчдыг устгах Нэг  session  хувьсагчийг устгахдаа  unset()   функцийг ашиглана. <?php unset($_SESSION['views']); ?> Бүх  session  хувьсагчдыг устгах буюу  session- ыг төгсгөхийг хүсвэл  session_destroy()   функцийг ашиглана. <?php   session_destroy();   ?>

Dynamic web 12

  • 1.
    Хичээлийн нэр: Динамик вэб програмчлал Хичээлийн төрөл: Лекц /№12/ Багшийн нэр: Г.Өсөхжаргал Cookie ба Session
  • 2.
    Хичээлийн агуулга Session болон Cookie тухай Cookie Session
  • 3.
    Cookie болон Session Session болон Cookie гэдэг нь вэб програмчлалын чухал ойлголтууд бөгөөд эдгээр нь өгөгдөл хадгалах нэг хэлбэр юм. Өгөгдлийг хадгалах хэлбэр: ( бидний үзсэн ) Хувьсагчид – тухайн сервэрийн санах ойд хадгална гэсэн үг бөгөөд түр зуурийн зүйл, нэг удаагийн ачаалалт Өгөгдлийн санд - өгөгдлийн файлд хадгалах бөгөөд удаан хугацааны зүйл
  • 4.
    Cookie болон Session Session болон Cookie – вэб сайтыг ачаалж байх бүхий л хугацаанд өгөгдлийг өөртөө хадгалах бөгөөд ямар ч үед ( вэб ачаалсан байх ) түүнд хандах бололцоотой байна.
  • 5.
    Cookie болон Session Хэрэглэгч вэбд нэвтрээд вэбийн хуудас болгоныг сервэр дээрээс татах (download) маягаар үздэг ба хуудас болгоныг үзэхдээ холболт хийдэг. Вэб сайтыг үзэхдээ хуудаснаас хуудас дамжиж байдаг учраас вэбийн хуудас хооронд ямар нэгэн үйлдэл болон утга дамжуулах шаардлага их гардаг. Өөрөөр хэлбэл вэб сайтыг ажиллаж эхлэнгүүт үүсээд вэб сайтаас гарах үед буюу вэб браузерийг хаангуут устах тогтмол санах ой хэрэгтэй болдог.
  • 6.
    Cookie болон Session Үүнийг дараах хоёр аргаар шийдвэрлэж болдог. Хэрэглэгчийн браузер ажиллаж байгаа компьютер дээрх тусгай нэг файлд тухайн мэдээлэл буюу утгаа хадгалах. Үүнийг Cookie гэж нэрлэнэ. Вэб сайт ажиллаж байгаа сервэр компьютер дээрх тусгай файлд тухайн мэдээлэл буюу утгаа хадгалах. Үүнийг Session гэж нэрлэнэ.
  • 7.
    Cookie Cookie гэдэг нь маш жижиг хэмжээний өгөгдлийг сервэрээс буюу сервэр талын веб хэлний үйл ажиллагааны үр дүнгээс гаргаж аваад хэрэглэгчийн браузер дээр хадгалах жижиг файлыг хэлнэ. Браузераар вэб хуудсыг үзэхийг яг тэр компьютерээс хүсэх бүрт, тэр хүсэлт нь Cookie -рүү илгээгдэх болно.
  • 8.
    Cookie Аливаа сервэрнь нэг зэрэг 20 cookie- г хэрэглэгчийн браузерт хадгалах чадвартай байдаг. Нэг cookie нь нэр, утга, хадгалах хугацаа, хадгалагдсан зам зэрэг мэдээллийг өөртөө хадгалдаг бөгөөд дунджаар 4 KB- с хэтрэхгүй хэмжээтэй байна.
  • 9.
    Cookie- г үүсгэхCookie- г үүсгэхдээ setcookie() функцийг ашиглана. Бичигдэх хэлбэр: setcookie(name, value, expire); name – cookie- ийн нэр value – cookie- ийн утга expire - cookie- ийн дуусах хугацаа Тайлбар : Cookie үүсгэх гэж байгаа бол браузераар ямар нэг өгөгдөл дамжихаас өмнө дээрх функцийг дуудаж ажиллуулах ёстой учир функцийг кодын хамгийн дээд талд тодорхойлно.
  • 10.
    Cookie- г үүсгэхЖишээ: <?php setcookie(&quot;user&quot;,“Bolor&quot;, time()+3600); ?> <html> … ,, User нэртэй cookie- г Bolor гэсэн утгатайгаар дуусах хугацаа нь одоогоос цагийн дараа/3600 sec / гэж үүсгэжээ. Дуусах хугацааг тодорхойлохдоо: 60 sec * 60 min * 24 hours * 30 days гэсэн загвараар тодорхойлно.
  • 11.
    Cookie- ийн утгыггаргаж авах Cookie- ийн утгыг гаргаж авахдаа тухайн сайтанд үүссэн cookie- үүүдийг агуулж байдаг $_COOKIE глобал массивт нэрээр нь түлхүүр хийж хандана. Жишээ: <?php if (isset($_COOKIE[&quot;user&quot;])) echo &quot;Welcome &quot; . $_COOKIE[&quot;user&quot;] . &quot;!<br />&quot;; else echo &quot;Welcome guest!<br />&quot;; ?>
  • 12.
    Үүсчихсэн cookie-ийг устгах Cookie- ийг үүсгэхдээ дуусах хугацааг зааж өгдөг бөгөөд тэр хугацаа дуусмагц cookie өөрөө устдаг. Харин хугацаанаас нь өмнө устгах шаардлага гарвал мөн setcookie() функцийг ашиглана. Жишээ: <?php setcookie(&quot;user&quot;, &quot;&quot;, time()-3600); ?> Дуусах хугацаа нь өнгөрсөн байх ёстой өгөөд одоогийн хугацаанаас хассан хугацаа зааж өгөхөд cookie устана.
  • 13.
    Cookie хэрэглэхтохиолдолууд Өөрийн вэб сайтандаа: Хэрэглэгчийн ID Хамгийн анх нэвтэрсэн огноо Хамгийн сүүлд нэвтэрсэн огноо Хэдэн удаа зочилсон тоо Сайтанд өнгөрүүлсан нийт хугацаа гэх мэтийн зүйлүүлийг хадгалж болно.
  • 14.
    Session Вэб сайтажиллаж байгаа сервэр компьютер дээр өгөгдлийн тусгай файлд хадгалан хуудаснаас хуудсанд дамжихдаа тухайн хадгалсан утгаа хэрэгтэй газраа авч ашиглахыг session гэж нэрлэнэ. Мөн session нь вэб сервэр болон веб браузер хоёрын хоорондын харилцааг хангадаг бөгөөд динамик вебийн орчин дахь маш чухал зүйл бөгөөд cookie- ээс илүү чухал үүрэгтэй.
  • 15.
    Session Session нь дараах 2 хэсгээс бүрдэнэ. Session хувьсагч Session ID Session хувьсагчид нь өөртөө вэб програм болон хэрэглэгчийн хоорондын үйл ажиллагаатай холбоотой мэдээллийг хадгалдаг. Session хувьсагчид нь вэб сервэр дээрээ session ID ашиглан хадгалагддаг.
  • 16.
    Session Session эхлэхэд тухайн хэрэглэгчийн браузер өөртөө session ID авдаг. session ID нь 32 оронтой байдаг. Харин дараагийн удаагийн ачаалалт буюу сервэрлүү дамжуулсан хүсэлт өөрөө энэ ID- ээ хадгалсаар явдаг. энэ session ID нь браузерийг хаахаас нааш устахгүйгээр хадгалагдсаар байдаг. Хэрэглэгчийн браузер сервэрлүү хүсэлт дамжуулахад сервэр тухайн браузер дээр үүссэн Session ID- аар тухайн браузерт зориулан Session хувьсагч үүсгэн хадгалаад дараагийн удаагийн хандалтуудад Session ID- аар дамжуулан session хувьсагчид нь ханддаг
  • 17.
    Session start.php PHPSessID=1234PHPSessID=1234 PHPSessID=1234 Батын Session Session хувьсагчид: Start: 10:15 am Count=12 Web server Бат
  • 18.
    Session- ыг эхлүүлэхSession -ыг эхлүүлэхдээ session_start() функцийг ашиглана. Энэ функцийг браузераар ямар нэг өгөгдөл дамжихаас өмнө буюу php хуудасныхаа хамгийн дээд талд байрлуулах хэрэгтэй session_start() функц анх дуудагдахад PHP хэл дээр шинэ session файл үүсгэгдэн хадгалагдах бөгөөд файлын нэр нь sess_ өргөтгөлийн араас тухайн session ID- г залгасан хэлбэрээр нэрлэгдсэн байдаг. C: // windows/temp –ээс харж болно.
  • 19.
    Session хувьсагчдыгашиглах session_start() функцийг ашиглан session эхлүүлсэн бол session- той ажиилах бололцоотой болно. Тухайн сервэр дээр зарлагдсан бүхий л session- ууд нь $_SESSION глобал массивт хадгалагдах болно. Уг массивын түлхүүр үг нь session хувьсагчийн нэр, утга нь тухайн session хувьсагчийн утга байна.
  • 20.
    Session хувьсагчдыгашиглах <?php session_start(); $_SESSION['views']=1; ?> <html> <body> <?php echo &quot;Pageviews=&quot;. $_SESSION['views']; ?> </body> </html>
  • 21.
    Session хувьсагчдыгашиглах <?php session_start(); if(isset($_SESSION['views'])) $_SESSION['views']=$_SESSION['views']+1; else $_SESSION['views']=1; echo &quot;Views=&quot;. $_SESSION['views']; ?>
  • 22.
    Session хувьсагчдыгустгах PHP хэл дээр өөрийн session- уудаа удирдан зохион байгуулахын тулд зарлагдаад, ашиглагдахаа больсон session- уудаа устгаж байх хэрэгтэй. Session устгахдаа: Аль нэг session хувьсагч устгах Бүх session хувьсагчдыг нийтээр нь устгах
  • 23.
    Session хувьсагчдыгустгах Нэг session хувьсагчийг устгахдаа unset() функцийг ашиглана. <?php unset($_SESSION['views']); ?> Бүх session хувьсагчдыг устгах буюу session- ыг төгсгөхийг хүсвэл session_destroy() функцийг ашиглана. <?php session_destroy(); ?>