I denne tutorial vil du lære, hvordan til at gemme visse oplysninger på serveren midlertidigt ved hjælp af PHP session.
Hvad er en Session
selvom du kan gemme data ved hjælp af cookies, men det har nogle sikkerhedsproblemer. Da cookies gemmes på brugerens computer, er det muligt for en hacker nemt at ændre et cookieindhold for at indsætte potentielt skadelige data i din applikation, der kan ødelægge din applikation.,
også hver gang bro .seren anmoder om en URL til serveren, sendes alle cookiedata for et websiteebsted automatisk til serveren i anmodningen. Det betyder, at hvis du har gemt 5 cookies på brugerens system, der hver har 4KB i størrelse, skal bro .seren uploade 20KB data, hver gang brugeren ser en side, hvilket kan påvirke dit siteebsteds ydeevne.
Du kan løse begge disse problemer ved at bruge PHP-sessionen. En PHP-session gemmer data på serveren snarere end brugerens computer., I et sessionbaseret miljø identificeres hver bruger gennem et unikt nummer kaldet session identifier eller SID. Denne unikke session ID bruges til at forbinde hver bruger med deres egne oplysninger på serveren som e-mails, indlæg, etc.
Tip: session-id ‘ erne genereres tilfældigt af PHP-motoren, hvilket næsten er umuligt at gætte. Da sessionsdataene er gemt på serveren, behøver de heller ikke sendes med hver bro .seranmodning.,
start af en PHP-Session
før du kan gemme oplysninger i sessionsvariabler, skal du først starte sessionen. For at starte en ny session skal du blot ringe til PHP session_start()
– funktionen. Det vil skabe en ny session og generere en unik session ID for brugeren.
PHP-koden i eksemplet nedenfor starter blot en ny session.,
Eksempel
Download
<?php// Starting sessionsession_start();?>
session_start()
funktion kontrollerer først at se, hvis en session, der allerede eksisterer ved at se for tilstedeværelsen af en session-ID. Hvis den finder en, dvs. hvis sessionen allerede er startet, opsætter den sessionsvariablerne, og hvis den ikke gør det, starter den en ny session ved at oprette et nyt sessions-ID.
Bemærk: du skal kalde funktionen session_start()
i begyndelsen af siden, dvs., før nogen output genereret af dit script i Bro .seren, ligesom du gør, mens du indstiller cookies med setcookie()
funktion.
lagring og adgang til sessionsdata
Du kan gemme alle dine sessionsdata som nøgleværdipar i $_SESSION
superglobal array. De lagrede data kan tilgås i løbet af en session. Overvej følgende script, der opretter en ny session og registrerer to sessionsvariabler.,
for At få adgang til session data, vi ligger på vores tidligere eksempel fra en anden side på samme web-domæne — du skal blot genskabe session ved at ringe session_start()
og derefter sende den tilsvarende tast af $_SESSION
associative array.
PHP-koden i eksemplet ovenfor giver følgende output.
Bemærk: For at få adgang til sessionsdataene på samme side er det ikke nødvendigt at genskabe sessionen, da den allerede er startet øverst på siden.,
Ødelægge en Session
Hvis du ønsker at fjerne visse session data, skal du blot fjerne den tilsvarende tast af $_SESSION
associative array, som vist i følgende eksempel:
Men at ødelægge en session helt, skal du blot ringe session_destroy()
funktion. Denne funktion behøver ikke noget argument, og et enkelt opkald ødelægger alle sessionsdata.,
Eksempel
Download
<?php// Starting sessionsession_start(); // Destroying sessionsession_destroy();?>
Bemærk: Før du ødelægge en session med session_destroy()
funktion, du er nødt til først at genskabe den session miljøet, hvis det ikke allerede er der ved brug af session_start()
funktion, så der er noget at ødelægge.
hver PHP — session har en timeout — værdi-en varighed målt i sekunder-som bestemmer, hvor længe en session skal forblive i live i mangel af brugeraktivitet., Du kan justere denne timeout-varigheden ved at ændre værdien af session.gc_maxlifetime
variable i PHP-konfigurationsfilen (php.ini
).