PHP-sessie & PHP-cookies met voorbeeld

Inhoudsopgave:

Anonim

Wat is een cookie?

Een cookie is een klein bestand met de maximale grootte van 4KB dat de webserver op de clientcomputer opslaat.

Zodra een cookie is ingesteld, retourneren alle paginaverzoeken die volgen de cookienaam en -waarde.

Een cookie kan alleen worden gelezen vanaf het domein waarvan het is uitgegeven. Een cookie die is ingesteld met het domein www.guru99.com kan bijvoorbeeld niet worden gelezen vanuit het domein career.guru99.com.

De meeste websites op internet geven elementen uit andere domeinen weer, zoals advertenties. De domeinen die deze elementen bedienen, kunnen ook hun eigen cookies instellen. Deze staan ​​bekend als cookies van derden.

Een cookie die door een gebruiker is aangemaakt, kan alleen voor hen zichtbaar zijn. Andere gebruikers kunnen de waarde ervan niet zien.

De meeste webbrowsers hebben opties om cookies, cookies van derden of beide uit te schakelen.

Als dit het geval is, reageert PHP door het cookie-token in de URL door te geven.

Het onderstaande diagram illustreert hoe cookies werken.

Hier,

1) Een gebruiker vraagt ​​om een ​​pagina die cookies opslaat

2) De server plaatst de cookie op de computer van de gebruiker

3) Andere paginaverzoeken van de gebruiker zullen de cookienaam en waarde retourneren

In deze tutorial leer je-

  • Waarom en wanneer cookies gebruiken?
  • Cookies aanmaken
  • De Cookie-waarde ophalen
  • Verwijder cookies
  • Wat is een sessie?
  • Waarom en wanneer sessies gebruiken?
  • Een sessie aanmaken
  • Sessievariabelen vernietigen

Waarom en wanneer cookies gebruiken?

  • Http is een staatloos protocol; Met cookies kunnen we de status van de applicatie volgen met behulp van kleine bestanden die op de computer van de gebruiker zijn opgeslagen.

    Het pad waar de cookies worden opgeslagen, is afhankelijk van de browser.

    Internet Explorer slaat ze meestal op in de map Tijdelijke internetbestanden.

  • De gebruikerservaring personaliseren - dit wordt bereikt door gebruikers hun voorkeuren te laten selecteren.

    De opgevraagde pagina die volgt, is gepersonaliseerd op basis van de ingestelde voorkeuren in de cookies.

  • Het bijhouden van de pagina's die door een gebruiker zijn bezocht

Cookies aanmaken

Laten we nu eens kijken naar de basissyntaxis die wordt gebruikt om een ​​cookie te maken.

HIER,

  • PHP "setcookie" is de PHP-functie die wordt gebruikt om de cookie te maken.
  • "Cookie_name" is de naam van de cookie die de server zal gebruiken bij het ophalen van zijn waarde uit de $ _COOKIE array-variabele. Het is verplicht.
  • "Cookie_value" is de waarde van de cookie en is verplicht
  • "[Expiry_time]" is optioneel; het kan worden gebruikt om de vervaltijd van de cookie in te stellen, bijvoorbeeld 1 uur. De tijd wordt ingesteld met behulp van de PHP-functies time () plus of min een aantal seconden groter dan 0 dwz time () + 3600 voor 1 uur.
  • "[Cookie_path]" is optioneel; het kan worden gebruikt om het cookiepad op de server in te stellen. De schuine streep "/" betekent dat de cookie beschikbaar wordt gesteld op het hele domein. Submappen beperken de cookietoegang tot het subdomein.
  • "[Domein]" is optioneel, het kan worden gebruikt om de cookietoegangshiërarchie te definiëren, dwz www.cookiedomain.com betekent het hele domein, terwijl www.sub.cookiedomain.com de cookietoegang beperkt tot www.sub.cookiedomain.com en zijn sub domeinen. Merk op dat het mogelijk is om een ​​subdomein van een subdomein te hebben, zolang het totaal aantal karakters niet meer is dan 253 karakters.
  • "[Secure]" is optioneel, de standaardwaarde is false. Het wordt gebruikt om te bepalen of de cookie wordt verzonden via https als deze is ingesteld op true of http als deze is ingesteld op false.
  • "[Httponly]" is optioneel. Als het is ingesteld op true, hebben alleen scripttalen aan de clientzijde, dwz JavaScript, geen toegang tot deze talen.

Let op: de php set cookie-functie moet worden uitgevoerd vóór de HTML-openingstag.

Laten we nu eens kijken naar een voorbeeld dat cookies gebruikt.

We zullen een basisprogramma maken waarmee we de gebruikersnaam kunnen opslaan in een cookie die na tien seconden verloopt.

De onderstaande code toont de implementatie van het bovenstaande voorbeeld “cookies.php”.

Uitgang:

the cookie has been set for 60 seconds

De Cookie-waarde ophalen

Maak een ander bestand aan met de naam "cookies_read.php" met de volgende code.

Uitgang:

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

Opmerking: $ _COOKIE is een in PHP ingebouwde super globale variabele.

Het bevat de namen en waarden van alle ingestelde cookies.

Het aantal waarden dat de

$ _COOKIE array kan bevatten is afhankelijk van de geheugengrootte die is ingesteld in php.ini.

De standaardwaarde is 1 GB.

Onze applicatie testen.

Laten we aannemen dat u uw PHP-bestanden in de phptus-map hebt opgeslagen.

  • Stap 1 - Open uw webbrowser en voer de URL http: //localhost/phptuts/cookies_read.php in

Opmerking: er is alleen een lege array weergegeven

  • Stap 2 - Browser naar de URL http: //localhost/phptuts/cookies.php

  • Stap 3 - Schakel terug naar het eerste tabblad en klik op de knop Vernieuwen

Wacht een minuut en klik vervolgens opnieuw op de knop Vernieuwen. Welke resultaten heb je gekregen?

Verwijder cookies

  • Als u een cookie wilt vernietigen voordat de vervaldatum is verstreken, stelt u de vervaltijd in op een tijd die al is verstreken.
  • Maak een nieuw bestand aan met de naam cookie_destroy.php met de volgende code
  • Herhaal stap 1 tot en met 3 van het bovenstaande gedeelte over het ophalen van cookiewaarden.
  • Open de URL http: //localhost/phptuts/cookie_destroy.php
  • Schakel over naar de URL http: //localhost/phptuts/cookies_read.php welke resultaten worden weergegeven?

Wat is een sessie?

  • Een sessie is een globale variabele die op de server is opgeslagen.
  • Elke sessie krijgt een uniek ID toegewezen dat wordt gebruikt om opgeslagen waarden op te halen.
  • Telkens wanneer een sessie wordt aangemaakt, wordt een cookie met het unieke sessie-ID opgeslagen op de computer van de gebruiker en bij elk verzoek aan de server geretourneerd. Als de clientbrowser geen cookies ondersteunt, wordt de unieke php-sessie-id weergegeven in de URL
  • Sessies hebben de capaciteit om relatief grote gegevens op te slaan in vergelijking met cookies.
  • De sessiewaarden worden automatisch verwijderd wanneer de browser wordt gesloten. Als u de waarden permanent wilt opslaan, moet u ze in de database opslaan.
  • Net als de arrayvariabele $ _COOKIE worden sessievariabelen opgeslagen in de arrayvariabele $ _SESSION. Net als bij cookies moet de sessie worden gestart voordat HTML-tags worden gestart.

Waarom en wanneer sessies gebruiken?

  • U wilt belangrijke informatie, zoals het gebruikers-ID, veiliger opslaan op de server waar kwaadwillende gebruikers ze niet kunnen temperen.
  • U wilt waarden van de ene pagina naar de andere doorgeven.
  • U wilt het alternatief voor cookies in browsers die geen cookies ondersteunen.
  • U wilt globale variabelen op een efficiënte en veiligere manier opslaan dan ze in de URL door te geven
  • Je ontwikkelt een applicatie zoals een winkelwagentje die tijdelijk informatie moet opslaan met een capaciteit groter dan 4KB.

Een sessie aanmaken

Om een ​​sessie te maken, moet u eerst de PHP-functie session_start aanroepen en vervolgens uw waarden opslaan in de arrayvariabele $ _SESSION.

Stel dat we willen weten hoe vaak een pagina is geladen, we kunnen daarvoor een sessie gebruiken.

De onderstaande code laat zien hoe u waarden uit sessies kunt maken en ophalen

Uitgang:

You are visitor number 1

Sessievariabelen vernietigen

De functie session_destroy () wordt gebruikt om de hele php-sessievariabelen te vernietigen.

Als u slechts een enkel item uit een sessie wilt vernietigen, gebruikt u de functie unset ().

De onderstaande code illustreert hoe u beide methoden kunt gebruiken.

Session_destroy verwijdert alle sessiegegevens, inclusief cookies die aan de sessie zijn gekoppeld.

Uitschakelen maakt alleen de individuele sessievariabelen vrij.

Andere gegevens blijven intact.

Overzicht

  • Cookies zijn kleine bestanden die op de computer van de gebruiker worden opgeslagen
  • Cookies kunnen alleen worden gelezen vanaf het uitgevende domein
  • Cookies kunnen een verlooptijd hebben, als deze niet is ingesteld, vervalt de cookie wanneer de browser wordt gesloten
  • Sessies zijn als globale variabelen die op de server zijn opgeslagen
  • Elke sessie krijgt een uniek identificatie-ID dat wordt gebruikt om de variabelen voor een gebruiker bij te houden.
  • Zowel cookies als sessies moeten worden gestart voordat HTML-tags naar de browser worden verzonden.