PHP Session & PHP Cookies met voorbeeld
Wat is een Cookie?
Een cookie is een klein bestand met de maximale grootte van 4 KB dat de webserver opslaat op de clientcomputer.
Nadat een cookie is ingesteld, retourneren alle volgende paginaversies de cookienaam en waarde.
Een cookie kan alleen worden gelezen van het domein waarvan het is uitgegeven. Een cookieverzameling die het domein www.jackyb.be gebruikt, kan bijvoorbeeld niet worden gelezen vanuit het domein info.jackyb.be.
De meeste websites op het internet vertonen elementen uit andere domeinen zoals advertenties. De domeinen die deze elementen bedienen, kunnen ook hun eigen cookies instellen. Deze staan bekend als cookies van derde partijen.
Een cookie gemaakt door een gebruiker kan alleen zichtbaar zijn voor hen. Andere gebruikers kunnen de waarde niet zien.
De meeste webbrowsers hebben opties voor het uitschakelen van cookies, cookies van derden of beide.
Als dit het geval is, antwoordt PHP door het cookietoken in de URL door te geven.
Het onderstaande diagram illustreert hoe cookies werken.
- Een gebruiker vraagt om een pagina met cookies
- De server plaatst de cookie op de computer van de gebruiker
- Andere paginaaanvragen van de gebruiker retourneren de cookienaam en waarde
In deze tutorial leer je:
Waarom en wanneer cookies gebruiken?
Cookies maken
Laten we nu kijken naar de basissyntaxis die is gebruikt om een cookie te maken.
<? Php
setcookie (cookienaam, cookiewaarde, [expiry_time], [cookie_path], [domain], [secure], [httponly]);
?>
- setcookie is de functie die wordt gebruikt om de cookie te maken.
- Cookienaam is de naam van de cookie die de server zal gebruiken bij het ophalen van de waarde uit de array $_COOKIE. Het is verplicht.
- Cookiewaarde is de waarde van de cookie en is verplicht
- [Expiry_time] is optioneel; het kan worden gebruikt om de vervaltijd voor de cookie in te stellen, zoals 1 uur. De tijd wordt ingesteld met behulp van de time () functies plus of minus 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 gemaakt voor het gehele domein. Subdirectory's beperken de cookietoegang tot het subdomein.
- [domain] is optioneel, het kan worden gebruikt om de cookie toegangshiërarchie te definiëren, dat wil zeggen www.cookie.com betekent volledig domein, terwijl www.sub.cookie.com de cookietoegang beperkt tot www.sub.cookie.com en zijn sub domeinen. Merk op dat het mogelijk is om een subdomein van een subdomein te hebben zolang de totale karakters niet meer dan 253 karakters zijn.
- [secure] is optioneel, de standaard is false. Het wordt gebruikt om te bepalen of de cookie via https wordt verzonden als deze is ingesteld op true of http als deze op false is ingesteld.
- [Httponly] is optioneel. Als deze is ingesteld op true, hebben alleen scriptingtalen aan de clientzijde, dat wil zeggen JavaScript, geen toegang.
Opmerking:
de setcookie 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".
<? Php
setcookie("user_name", "jackyb", time()+ 60,'/'); // verloopt na 60 seconden
echo 'de cookie is ingesteld voor 60 seconden';
?>
Output:
de cookie is ingesteld voor 60 seconden
De Cookie waarde ophalen
Maak een ander bestand met de naam "cookies_read.php" met de volgende code.
<? Php
print_r($_COOKIE); // geef de inhoud van de cookie array variabele
?>
Output:
Array ([PHPSESSID] => h5onbf7pctbr0t68adugdp2611 [user_name] => jackyb)
Opmerking:
$_COOKIE is een super globale variabele die is ingebouwd in PHP.
Het bevat de namen en waarden van alle ingestelde cookies.
Het aantal waarden dat de $_COOKIE array kan bevatten, is afhankelijk van de geheugen grootte ingesteld in php.ini. De standaardwaarde is 1 GB.
Het testen van onze applicatie.
Laten we aannemen dat je je PHP bestanden in de phptus map hebt opgeslagen.
Verwijder cookies
Wat is een Session?
- Een Session is een globale variabele die op de server is opgeslagen.
- Aan elke Session wordt een unieke id toegewezen die wordt gebruikt om opgeslagen waarden op te halen.
- Wanneer een Session wordt aangemaakt, wordt een cookie met de unieke sessie ID opgeslagen op de computer van de gebruiker en bij elke aanvraag naar de server teruggestuurd. Als de clientbrowser geen cookies ondersteunt, wordt de unieke id van de php sessie weergegeven in de URL
- Sessions hebben de capaciteit om relatief grote gegevens op te slaan in vergelijking met cookies.
- De Session waarden worden automatisch verwijderd wanneer de browser wordt gesloten. Als u de waarden permanent wilt opslaan, slaat u ze op in de database.
- Net als de $_COOKIE array, worden Session variabelen opgeslagen in de $_SESSION array. Net als cookies moet de Session worden gestart voordat HTML tags worden gebruikt.
- U wilt belangrijke informatie, zoals het gebruikers ID, veiliger opslaan op de server waarop kwaadwillende gebruikers zich er niet mee kunnen beheersen.
- U wilt waarden doorgeven van de ene pagina naar de andere.
- U wilt het alternatief voor cookies in browsers die geen cookies ondersteunen.
- U wilt globale variabelen op een efficiënte en veiliger manier opslaan dan ze in de URL door te geven
- U ontwikkelt een toepassing zoals een winkelwagentje dat tijdelijk informatie opslaat met een capaciteit groter dan 4 KB.
Waarom en wanneer Sessions gebruiken?
- U wilt belangrijke informatie, zoals het gebruikers ID, veiliger opslaan op de server waarop kwaadwillende gebruikers zich er niet mee kunnen beheersen.
- U wilt waarden doorgeven van de ene pagina naar de andere.
- U wilt het alternatief voor cookies in browsers die geen cookies ondersteunen.
- U wilt globale variabelen op een efficiënte en veiliger manier opslaan dan ze in de URL door te geven
- U ontwikkelt een toepassing zoals een winkelwagentje dat tijdelijk informatie opslaat met een capaciteit groter dan 4 KB.
Een Session maken
Als u een Session wilt maken, moet u eerst de functie session_start aanroepen en vervolgens uw waarden opslaan in de array array $_SESSION.
Laten we veronderstellen dat we willen weten hoeveel keer een pagina is geladen, we kunnen een sessie gebruiken om dat te doen.
De onderstaande code laat zien hoe u waarden uit sessies kunt maken en ophalen
<? Php
session_start(); //start the PHP_session function
if(isset($_SESSION['page_count']))
{
$_SESSION['page_count'] += 1;
}
else
{
$_SESSION['page_count'] = 1;
}
echo 'U bent bezoeker nummer ' . $_SESSION['page_count'];
?>
Output:
U bent bezoeker nummer 1
Session variabelen vernietigen
De functie session_destroy () wordt gebruikt om de volledige Session variabelen te vernietigen.
Als u alleen een Session item wilt vernietigen, gebruikt u de functie unset().
De onderstaande code illustreert hoe beide methoden te gebruiken.
<? Php
session_destroy(); // vernietig de hele sessie
?>
<? Php
unset($_ SESSION['product']); // item product sessie vernietigen
?>
Session_destroy verwijdert alle sessiegegevens inclusief cookies die aan de sessie zijn gekoppeld.
unset maakt alleen de individuele Session variabelen vrij.
Andere gegevens blijven intact.
Samenvatting
- Cookies zijn kleine bestanden die op de computer van de gebruiker worden opgeslagen
- Cookies kunnen alleen worden gelezen vanuit het uitgevende domein
- Cookies kunnen een vervaltijd 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.
- Beide cookies en sessies moeten worden gestart voordat HTML tags naar de browser zijn verzonden.