i den här handledningen lär du dig att lagra vissa data på servern tillfälligt med hjälp av PHP-session.
Vad är en Session
även om du kan lagra data med hjälp av cookies men det har vissa säkerhetsproblem. Eftersom cookies lagras på användarens dator är det möjligt för en angripare att enkelt ändra ett cookie-innehåll för att infoga potentiellt skadliga data i din ansökan som kan bryta din ansökan.,
även varje gång webbläsaren begär en webbadress till servern skickas alla cookiedata för en webbplats automatiskt till servern inom begäran. Det betyder att om du har lagrat 5 cookies på användarens system, var och en har 4KB i storlek, måste webbläsaren ladda upp 20KB data varje gång användaren visar en sida, vilket kan påverka din webbplats prestanda.
Du kan lösa båda dessa problem genom att använda PHP-sessionen. En PHP session lagrar data på servern snarare än användarens dator., I en sessionsbaserad miljö identifieras varje användare genom ett unikt nummer som kallas sessionsidentifierare eller SID. Denna unika session ID används för att länka varje användare med sin egen information på servern som e-post, inlägg, etc.
tips: sessions-id: N genereras slumpmässigt av PHP-motorn vilket är nästan omöjligt att gissa. Dessutom, eftersom sessionsdata lagras på servern, det behöver inte skickas med varje begäran webbläsare.,
starta en PHP-Session
innan du kan lagra information i sessionsvariabler måste du först starta sessionen. För att starta en ny session, ring bara PHPsession_start()
– funktionen. Det kommer att skapa en ny session och skapa ett unikt sessions-ID för användaren.
PHP-koden i exemplet nedan startar helt enkelt en ny session.,
exempel
hämta
<?php// Starting sessionsession_start();?>
funktionensession_start()
kontrollerar först om en session redan finns genom att leta efter närvaro av ett sessions-ID. Om den hittar en, dvs. om sessionen redan är igång, konfigurerar den sessionsvariablerna och om den inte gör det, startar den en ny session genom att skapa ett nytt sessions-ID.
Obs! Du måste anropa funktionensession_start()
I början av sidan, dvs., innan någon utgång som genereras av ditt skript i webbläsaren, ungefär som du gör när du ställer in cookies med setcookie()
funktion.
lagra och komma åt sessionsdata
Du kan lagra alla dina sessionsdata som nyckelvärdespar i$_SESSION
superglobal array. De lagrade data kan nås under en sessions livstid. Tänk på följande script, som skapar en ny session och registrerar två sessionsvariabler.,
för att komma åt sessionsdata som vi satt på vårt tidigare exempel från någon annan sida på samma webbdomän — återskapa helt enkelt sessionen genom att ringasession_start()
och skicka sedan motsvarande nyckel till$_SESSION
associativ array.
PHP-koden i exemplet ovan ger följande utdata.
Obs! För att komma åt sessionsdata på samma sida behöver du inte återskapa sessionen eftersom den redan har startats överst på sidan.,
förstöra en Session
om du vill ta bort vissa sessionsdata, helt enkelt avmarkera motsvarande nyckel för$_SESSION
associativ array, som visas i följande exempel:
men för att förstöra en session helt enkelt ringasession_destroy()
funktion. Denna funktion behöver inga argument och ett enda samtal förstör alla sessionsdata.,
exempel
ladda ner
<?php// Starting sessionsession_start(); // Destroying sessionsession_destroy();?>
Obs! innan du förstör en session med funktionensession_destroy()
måste du först återskapa sessionsmiljön om den inte redan finns med funktionensession_start()
funktion, så att det finns något att förstöra.
varje PHP — session har ett timeout — värde-en varaktighet, mätt i sekunder-vilket bestämmer hur länge en session ska förbli levande i avsaknad av användaraktivitet., Du kan justera tidsgränsen genom att ändra värdet påsession.gc_maxlifetime
– variabeln i PHP-konfigurationsfilen (php.ini
).