PHP sesija & PHP sīkdatnes ar piemēru

Satura rādītājs:

Anonim

Kas ir sīkdatne?

Sīkdatne ir mazs fails ar maksimālo izmēru 4KB, ko tīmekļa serveris glabā klienta datorā.

Kad sīkfails ir iestatīts, visi sekojošie lapu pieprasījumi atgriež sīkfaila nosaukumu un vērtību.

Sīkfailu var nolasīt tikai no tā domēna, no kura tas ir izsniegts. Piemēram, sīkfailu kopu, izmantojot domēnu www.guru99.com, nevar nolasīt no domēna karjera.guru99.com.

Lielākajā daļā interneta vietņu tiek parādīti elementi no citiem domēniem, piemēram, reklāmas. Domēni, kas apkalpo šos elementus, var arī iestatīt savus sīkfailus. Tie ir pazīstami kā trešo pušu sīkfaili.

Lietotāja izveidotie sīkfaili var būt redzami tikai viņiem. Citi lietotāji nevar redzēt tā vērtību.

Lielākajai daļai tīmekļa pārlūkprogrammu ir iespējas atspējot sīkfailus, trešo pušu sīkfailus vai abus.

Ja tas tā ir, PHP atbild, nododot sīkfailu marķieri URL.

Zemāk redzamā diagramma parāda, kā darbojas sīkdatnes.

Šeit,

1) Lietotājs pieprasa lapu, kurā tiek glabāti sīkfaili

2) Serveris nosaka sīkfailu lietotāja datorā

3) Citi lietotāja pieprasījumi atgriezīs sīkdatnes nosaukumu un vērtību

Šajā apmācībā jūs uzzināsiet

  • Kāpēc un kad lietot sīkdatnes?
  • Sīkdatņu izveide
  • Notiek sīkfaila vērtības izgūšana
  • Dzēst sīkfailus
  • Kas ir sesija?
  • Kāpēc un kad izmantot sesijas?
  • Sesijas izveide
  • Sesijas mainīgo iznīcināšana

Kāpēc un kad lietot sīkdatnes?

  • Http ir bezvalstnieks. sīkdatnes ļauj mums izsekot lietojumprogrammas stāvokli, izmantojot nelielus failus, kas saglabāti lietotāja datorā.

    Ceļš, kurā tiek saglabāti sīkfaili, ir atkarīgs no pārlūkprogrammas.

    Internet Explorer tos parasti saglabā mapē Temporal Internet Files.

  • Lietotāja pieredzes personalizēšana - tas tiek panākts, ļaujot lietotājiem izvēlēties savas preferences.

    Lapa, kurai pieprasīts sekot, tiek personalizēta, pamatojoties uz sīkdatnēs iestatītajām preferencēm.

  • Lietotāja apmeklēto lapu izsekošana

Sīkdatņu izveide

Apskatīsim sīkfailu izveidošanai izmantoto sintaksi.

ŠEIT,

  • Php “setcookie” ir PHP funkcija, ko izmanto sīkdatnes izveidošanai.
  • “Cookie_name” ir tās sīkdatnes nosaukums, kuru serveris izmantos, iegūstot tās vērtību no masīva mainīgā $ _COOKIE. Tas ir obligāti.
  • “Cookie_value” ir sīkdatnes vērtība un tā ir obligāta
  • “[Derīguma termiņš]” nav obligāts; to var izmantot, lai iestatītu sīkdatnes derīguma termiņu, piemēram, 1 stundu. Laiks tiek iestatīts, izmantojot PHP laika () funkcijas, plus vai mīnus sekundes, kas pārsniedz 0, ti, laiks () + 3600 uz 1 stundu.
  • “[Cookie_path]” nav obligāts; to var izmantot, lai serverī iestatītu sīkfailu ceļu. Slīpsvītra uz priekšu “/” nozīmē, ka sīkfails būs pieejams visā domēnā. Apakšdirektoriji ierobežo sīkfailu piekļuvi apakšdomēnam.
  • “[Domēns]” nav obligāts, to var izmantot, lai noteiktu sīkfailu piekļuves hierarhiju, ti, www.cookiedomain.com nozīmē visu domēnu, savukārt www.sub.cookiedomain.com ierobežo sīkfailu piekļuvi vietnei www.sub.cookiedomain.com un tā apakšnodaļai. domēnus. Ņemiet vērā, ka ir iespējams apakšdomēna apakšdomēns, ja kopējais rakstzīmju skaits nepārsniedz 253 rakstzīmes.
  • “[Drošs]” nav obligāts, noklusējums ir nepatiesa. To izmanto, lai noteiktu, vai sīkfails tiek nosūtīts, izmantojot https, ja tas ir iestatīts uz true vai http, ja tas ir iestatīts uz false.
  • “[Httponly]” nav obligāts. Ja tā ir iestatīta uz true, tad tām nevar piekļūt tikai klienta puses skriptu valodas, ti, JavaScript.

Piezīme: php set cookie funkcija ir jāizpilda pirms HTML atvēršanas taga.

Apskatīsim piemēru, kurā tiek izmantotas sīkdatnes.

Mēs izveidosim pamata programmu, kas ļauj mums saglabāt lietotāja vārdu sīkfailā, kura derīguma termiņš beidzas pēc desmit sekundēm.

Zemāk redzamais kods parāda iepriekš minētā “cookies.php” piemēra ieviešanu.

Izeja:

the cookie has been set for 60 seconds

Notiek sīkfaila vērtības izgūšana

Izveidojiet citu failu ar nosaukumu “cookies_read.php” ar šādu kodu.

Izeja:

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

Piezīme: $ _COOKIE ir PHP, kas iebūvēts super globālā mainīgā lielumā.

Tajā ir visu iestatīto sīkfailu nosaukumi un vērtības.

To vērtību skaits, kuras

Masīvs $ _COOKIE var būt atkarīgs no atmiņas lieluma, kas iestatīts php.ini.

Noklusējuma vērtība ir 1 GB.

Pārbauda mūsu lietojumprogrammu.

Pieņemsim, ka esat saglabājis savus PHP failus mapē phptus.

  • 1. darbība - atveriet tīmekļa pārlūkprogrammu un ievadiet vietrādi URL: http: //localhost/phptuts/cookies_read.php

Piezīme. Parādīts tikai tukšs masīvs

  • 2. darbība. Pārlūks uz vietrādi URL: http: //localhost/phptuts/cookies.php

  • 3. solis - pārslēdzieties atpakaļ uz pirmo cilni, pēc tam noklikšķiniet uz pogas Atsvaidzināt

Pagaidiet minūti un pēc tam vēlreiz noklikšķiniet uz pogas Atsvaidzināt. Kādus rezultātus jūs ieguvāt?

Dzēst sīkfailus

  • Ja vēlaties iznīcināt sīkfailu pirms tā derīguma termiņa beigām, iestatiet derīguma termiņu uz laiku, kas jau ir pagājis.
  • Izveidojiet jaunu iesniegto nosaukumu cookie_destroy.php ar šādu kodu
  • Atkārtojiet 1. līdz 3. darbību no iepriekš minētās sadaļas par sīkfailu vērtību izgūšanu.
  • Atveriet vietrādi URL: http: //localhost/phptuts/cookie_destroy.php
  • Pārslēdzieties uz vietrādi URL http: //localhost/phptuts/cookies_read.php kādus rezultātus tas parāda?

Kas ir sesija?

  • Sesija ir globāls mainīgais, kas tiek glabāts serverī.
  • Katrai sesijai tiek piešķirts unikāls ID, ko izmanto, lai izgūtu saglabātās vērtības.
  • Ikreiz, kad tiek izveidota sesija, sīkfails ar unikālu sesijas ID tiek saglabāts lietotāja datorā un tiek nosūtīts serverim ar katru pieprasījumu. Ja klienta pārlūkprogramma neatbalsta sīkfailus, vietrādī URL tiek parādīts unikālais php sesijas ID
  • Sesijas spēj saglabāt salīdzinoši lielus datus, salīdzinot ar sīkfailiem.
  • Sesijas vērtības tiek automātiski izdzēstas, kad pārlūkprogramma ir aizvērta. Ja vēlaties neatgriezeniski saglabāt vērtības, tās jāsaglabā datu bāzē.
  • Tāpat kā masīva mainīgais $ _COOKIE, sesijas mainīgie tiek glabāti masīva mainīgajā $ _SESSION. Tāpat kā sīkdatnes, sesija ir jāsāk pirms HTML tagiem.

Kāpēc un kad izmantot sesijas?

  • Svarīgu informāciju, piemēram, lietotāja ID, vēlaties drošāk uzglabāt serverī, kur ļaunprātīgi lietotāji nevar ar viņiem raizēties.
  • Jūs vēlaties pārsūtīt vērtības no vienas lapas uz otru.
  • Jūs vēlaties alternatīvu sīkfailiem pārlūkprogrammās, kas neatbalsta sīkfailus.
  • Jūs vēlaties glabāt globālos mainīgos efektīvā un drošākā veidā, salīdzinot ar to ievadīšanu URL
  • Jūs izstrādājat tādu lietojumprogrammu kā iepirkumu grozs, kurā uz laiku jāuzglabā informācija, kuras ietilpība ir lielāka par 4 KB.

Sesijas izveide

Lai izveidotu sesiju, vispirms jāizsauc PHP session_start funkcija un pēc tam vērtības jāsaglabā masīva mainīgajā $ _SESSION.

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
  • Katrai sesijai tiek piešķirts unikāls identifikācijas ID, kas tiek izmantots, lai izsekotu lietotāja mainīgos.
  • Gan sīkdatnes, gan sesijas jāsāk, pirms pārlūkprogrammai tiek nosūtīti HTML tagi.