PHP sesija & PHP slapukai su pavyzdžiu

Kas yra slapukas?

Slapukas yra nedidelis failas, kurio maksimalus dydis yra 4 KB, kurį žiniatinklio serveris saugo kliento kompiuteryje.

Nustačius slapuką, visos paskesnės puslapio užklausos grąžina slapuko pavadinimą ir vertę.

Slapuką galima skaityti tik iš domeno, iš kurio jis buvo išleistas. Pavyzdžiui, slapuko rinkinio, kuriame naudojamas domenas www.guru99.com, negalima perskaityti iš domeno karjeros.guru99.com.

Daugumoje interneto svetainių rodomi elementai iš kitų domenų, pavyzdžiui, reklamos. Šiuos elementus aptarnaujantys domenai taip pat gali nustatyti savo slapukus. Tai vadinama trečiųjų šalių slapukais.

Vartotojo sukurtas slapukas gali būti matomas tik jiems. Kiti vartotojai nemato jo vertės.

Daugelyje interneto naršyklių yra parinkčių, kaip išjungti slapukus, trečiųjų šalių slapukus arba abu.

Tokiu atveju PHP atsako perduodamas slapuko prieigos raktą URL.

Žemiau parodyta schema parodo, kaip veikia slapukai.

Čia

1) Vartotojas prašo puslapio, kuriame saugomi slapukai

2) Serveris nustato slapuką vartotojo kompiuteryje

3) Kitos vartotojo užklausos grąžins slapuko pavadinimą ir vertę

Šioje pamokoje sužinosite

  • Kodėl ir kada naudoti slapukus?
  • Slapukų kūrimas
  • Gaunama slapuko reikšmė
  • Ištrinti slapukus
  • Kas yra sesija?
  • Kodėl ir kada naudoti „Session“?
  • Sesijos kūrimas
  • Sesijos kintamųjų naikinimas

Kodėl ir kada naudoti slapukus?

  • „Http“ yra protokolas be pilietybės; slapukai leidžia mums stebėti programos būseną naudojant mažus failus, saugomus vartotojo kompiuteryje.

    Slapukų saugojimo kelias priklauso nuo naršyklės.

    Paprastai „Internet Explorer“ juos saugo aplanke „Laikini interneto failai“.

  • Individualizuoti vartotojo patirtį - tai pasiekiama leidžiant vartotojams pasirinkti savo pageidavimus.

    Puslapis, kurio prašoma, kad būtų stebimas, yra suasmenintas, atsižvelgiant į nustatytas slapukus slapukuose.

  • Vartotojo aplankytų puslapių stebėjimas

Slapukų kūrimas

Dabar pažvelkime į pagrindinę sintaksę, naudojamą kuriant slapuką.


ČIA

  • PHP „setcookie“ yra PHP funkcija, naudojama kuriant slapuką.
  • „Cookie_name“ yra slapuko pavadinimas, kurį serveris naudos nuskaitydamas jo vertę iš masyvo $ _COOKIE masyvo. Tai privaloma.
  • „Cookie_value“ yra slapuko vertė ir ji yra privaloma
  • „[Galiojimo laikas]“ yra neprivalomas; juo galima nustatyti slapuko galiojimo laiką, pvz., 1 valandą. Laikas nustatomas naudojant PHP laiko () funkcijas plius minus sekundžių skaičius, didesnis nei 0, ty laikas () + 3600 1 valandą.
  • „[Cookie_path]“ yra neprivaloma; juo galima nustatyti slapuko kelią serveryje. Pasvirasis pasvirasis brūkšnys „/“ reiškia, kad slapukas bus prieinamas visame domene. Pakatalogiai riboja slapukų prieigą prie padomenio.
  • „[Domenas]“ yra neprivalomas, jis gali būti naudojamas apibrėžiant slapukų prieigos hierarchiją, ty www.cookiedomain.com reiškia visą domeną, o www.sub.cookiedomain.com riboja slapukų prieigą prie www.sub.cookiedomain.com ir jo antrinių dalių domenai. Atkreipkite dėmesį, kad galima turėti padomenio padomenį, jei bendras simbolių skaičius neviršija 253 simbolių.
  • „[Saugus]“ yra neprivalomas, numatytasis yra klaidingas. Jis naudojamas norint nustatyti, ar slapukas siunčiamas per https, jei jis nustatytas kaip teisingas, ar http, jei jis nustatytas kaip netikras.
  • „[Httponly]“ yra neprivaloma. Jei ji nustatyta kaip „true“, tada prie jos negali prisijungti tik kliento pusės scenarijų kalbos, ty „JavaScript“.

Pastaba: PHP rinkinio slapuko funkcija turi būti vykdoma prieš HTML atidarymo žymą.

Dabar pažvelkime į pavyzdį, kuriame naudojami slapukai.

Sukursime pagrindinę programą, leidžiančią išsaugoti vartotojo vardą slapuke, kurio galiojimas baigsis po dešimties sekundžių.

Žemiau pateiktas kodas rodo aukščiau pateikto pavyzdžio „cookies.php“ įgyvendinimą.


Išvestis:

the cookie has been set for 60 seconds

Gaunama slapuko reikšmė

Sukurkite kitą failą pavadinimu „cookies_read.php“ su šiuo kodu.


Išvestis:

Array ( [PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => Guru99 )

Pastaba: $ _COOKIE yra PHP, sukurtas super visuotiniame kintamajame.

Jame yra visų nustatytų slapukų pavadinimai ir vertės.

Reikšmių, kurias

Masyvas $ _COOKIE gali priklausyti nuo atminties dydžio, nustatyto php.ini.

Numatytoji vertė yra 1 GB.

Testuojama mūsų programa.

Tarkime, kad jūs išsaugojote savo PHP failus „phptus“ aplanke.

  • 1 žingsnis - atidarykite savo žiniatinklio naršyklę ir įveskite URL http: //localhost/phptuts/cookies_read.php

Pastaba: rodomas tik tuščias masyvas

  • 2 žingsnis - naršyklė į URL http: //localhost/phptuts/cookies.php

  • 3 žingsnis - grįžkite į pirmąjį skirtuką, tada spustelėkite atnaujinimo mygtuką

Palaukite minutę, tada dar kartą spustelėkite atnaujinimo mygtuką. Kokių rezultatų gavai?

Ištrinti slapukus

  • Jei norite sunaikinti slapuką prieš jo galiojimo laiką, nustatykite jo galiojimo laiką jau praėjusiu laiku.
  • Sukurkite naują paduotą pavadinimą cookie_destroy.php su šiuo kodu

  • Pakartokite 1–3 veiksmus iš ankstesnio skyriaus apie slapukų reikšmių gavimą.
  • Atidarykite URL : http: //localhost/phptuts/cookie_destroy.php
  • Perjunkite į URL http: //localhost/phptuts/cookies_read.php kokius rezultatus jis rodo?

Kas yra sesija?

  • Seansas yra serveryje saugomas visuotinis kintamasis.
  • Kiekvienam seansui priskiriamas unikalus ID, kuris naudojamas išsaugotoms vertėms nuskaityti.
  • Kuriant seansą, slapukas su unikaliu seanso ID saugomas vartotojo kompiuteryje ir grąžinamas su kiekviena užklausa serveriui. Jei kliento naršyklė nepalaiko slapukų, unikalus php sesijos ID rodomas URL
  • Sesijos gali saugoti palyginti didelius duomenis, palyginti su slapukais.
  • Uždarius naršyklę, seanso vertės automatiškai ištrinamos. Jei norite išsaugoti vertes visam laikui, turėtumėte jas laikyti duomenų bazėje.
  • Kaip ir masyvo $ _COOKIE masyvas, sesijos kintamieji saugomi masyvo $ _SESSION masyvo kintamajame. Kaip ir slapukai, sesija turi būti pradėta prieš bet kokias HTML žymas.

Kodėl ir kada naudoti „Session“?

  • Svarbią informaciją, pvz., Vartotojo identifikatorių, norite saugiau saugoti serveryje, kur kenkėjiški vartotojai negali jais susijaudinti.
  • Norite perduoti vertes iš vieno puslapio į kitą.
  • Norite alternatyvos slapukams naršyklėse, kurios nepalaiko slapukų.
  • Visuotinius kintamuosius norite saugoti efektyviai ir saugiau, palyginti su jų pateikimu URL
  • Kuriate tokią programą kaip pirkinių krepšelis, kuriame laikinai turi būti saugoma didesnės nei 4 KB talpos informacija.

Sesijos kūrimas

Norėdami sukurti seansą, pirmiausia turite iškviesti PHP session_start funkciją ir tada išsaugoti savo vertes masyvo $ _SESSION kintamajame.

Let’s suppose we want to know the number of times that a page has been loaded, we can use a session to do that.

The code below shows how to create and retrieve values from sessions


Output:

You are visitor number 1

Destroying Session Variables

The session_destroy() function is used to destroy the whole Php session variables.

If you want to destroy only a session single item, you use the unset() function.

The code below illustrates how to use both methods.



Session_destroy removes all the session data including cookies associated with the session.

Unset only frees the individual session variables.

Other data remains intact.

Summary

  • Cookies are small files saved on the user’s computer
  • Cookies can only be read from the issuing domain
  • Cookies can have an expiry time, if it is not set, then the cookie expires when the browser is closed
  • Sessions are like global variables stored on the server
  • Kiekvienam seansui suteikiamas unikalus identifikavimo ID, kuris naudojamas vartotojo kintamiesiems stebėti.
  • Tiek slapukai, tiek seansai turi būti pradėti prieš išsiunčiant bet kokias HTML žymas į naršyklę.

Įdomios straipsniai...