in deze tutorial leert u hoe u bepaalde gegevens op de server op een tijdelijke basis kunt opslaan met behulp van PHP-sessie.
Wat is een sessie
hoewel u gegevens kunt opslaan met behulp van cookies, heeft het een aantal beveiligingsproblemen. Omdat cookies op de computer van de gebruiker worden opgeslagen, is het voor een aanvaller mogelijk om gemakkelijk een cookie-inhoud te wijzigen om mogelijk schadelijke gegevens in uw toepassing in te voegen die uw toepassing kunnen breken.,
ook elke keer dat de browser een URL naar de server vraagt, worden alle cookiegegevens van een website automatisch naar de server verzonden binnen het verzoek. Het betekent dat als u 5 cookies op het systeem van de gebruiker hebt opgeslagen, die elk 4KB groot zijn, de browser 20KB aan gegevens moet uploaden elke keer dat de gebruiker een pagina bekijkt, wat de prestaties van uw site kan beïnvloeden.
u kunt beide problemen oplossen door de PHP sessie te gebruiken. Een PHP sessie slaat gegevens op de server in plaats van de computer van de gebruiker., In een sessiegebaseerde omgeving wordt elke gebruiker geïdentificeerd door middel van een uniek nummer genaamd session identifier of SID. Deze unieke sessie-ID wordt gebruikt om elke gebruiker te koppelen met hun eigen informatie op de server, zoals e-mails, berichten, enz.
Tip: de sessie-id ‘ s worden willekeurig gegenereerd door de PHP-engine, wat bijna onmogelijk te raden is. Bovendien, omdat de sessiegegevens op de server worden opgeslagen, hoeft deze niet bij elke browseraanvraag te worden verzonden.,
een PHP-sessie starten
voordat u informatie in sessievariabelen kunt opslaan, moet u eerst de sessie opstarten. Om een nieuwe sessie te beginnen, gebruik je gewoon de PHP session_start()
functie. Het maakt een nieuwe sessie aan en genereert een unieke sessie-ID voor de gebruiker.
de PHP code in het voorbeeld hieronder start gewoon een nieuwe sessie.,
voorbeeld
Download
<?php// Starting sessionsession_start();?>
de functie session_start()
controleert eerst of een sessie al bestaat door te zoeken naar de aanwezigheid van een sessie-ID. Als het een sessie vindt, dat wil zeggen als de sessie al is gestart, stelt het de sessievariabelen in en als dat niet het geval is, start het een nieuwe sessie Door een nieuwe sessie-ID aan te maken.
opmerking: u moet de functie session_start()
aan het begin van de pagina aanroepen, d.w.z., voor elke uitvoer gegenereerd door uw script in de browser, net zoals u doet bij het instellen van de cookies met setcookie()
functie.
opslag en toegang tot sessiegegevens
u kunt al uw sessiegegevens opslaan als sleutel-waardeparen in de $_SESSION
superglobale array. De opgeslagen gegevens zijn toegankelijk tijdens de levensduur van een sessie. Overweeg het volgende script, dat een nieuwe sessie maakt en twee sessievariabelen registreert.,
om toegang te krijgen tot de sessiegegevens die we in ons vorige voorbeeld hebben ingesteld vanaf elke andere pagina op hetzelfde webdomein — maak gewoon de sessie opnieuw aan door session_start()
aan te roepen en geef de bijbehorende sleutel door aan de $_SESSION
associatieve array.
de PHP code in het bovenstaande voorbeeld geeft de volgende uitvoer.
OPMERKING: Om toegang te krijgen tot de sessiegegevens op dezelfde pagina is het niet nodig om de sessie opnieuw aan te maken omdat deze al boven aan de pagina is gestart.,
een sessie vernietigen
Als u bepaalde sessiegegevens wilt verwijderen, zet dan gewoon de bijbehorende sleutel van de$_SESSION
associatieve array uit, zoals in het volgende voorbeeld wordt getoond:
om een sessie volledig te vernietigen, roept u echter de functiesession_destroy()
aan. Deze functie heeft geen argument nodig en een enkele aanroep vernietigt alle sessiegegevens.,
voorbeeld
Download
<?php// Starting sessionsession_start(); // Destroying sessionsession_destroy();?>
opmerking: voordat u een sessie vernietigt met de functie session_destroy()
dient u eerst de sessie opnieuw te maken omgeving als het er nog niet is met behulp van de session_start()
functie, zodat er iets te vernietigen is.
elke PHP-sessie heeft een time — outwaarde — een duur, gemeten in seconden-die bepaalt hoe lang een sessie in leven moet blijven als er geen gebruikersactiviteit is., U kunt deze tijdsduur aanpassen door de waarde van session.gc_maxlifetime
variabele in het PHP configuratiebestand te wijzigen (php.ini
).