130 likes | 243 Views
Webprogrammering. Tilstandsbevaring Sessions og cookies. I dag. Variablers varighet Tilstandsbevaring Sessions , Cookies Kodegjennomgang Oppgaveløsning på lab. Variablers varighet. Side2.php. Test.php. <? php $alder = 23; echo ”Alderen er : ”.$alder. ”< br />; ?>
E N D
Webprogrammering Tilstandsbevaring Sessions og cookies
I dag • Variablers varighet • Tilstandsbevaring • Sessions, Cookies • Kodegjennomgang • Oppgaveløsning på lab.
Variablers varighet Side2.php Test.php <?php $alder = 23; echo ”Alderen er : ”.$alder. ”<br/>; ?> <a href=”Side2.php">Til ny side</a> <?php echo ”Alderen er : ”; echo $alder; ?> Alderen er : Alderen er: 23 Side2.php
Variablers varighet • Vanlige $variabler eksisterer kun når filen som variabelen inneholder kjører • Når ny side kalles (ved hyperlink, knapp el.) overføres ikke variabelverdien • Men i et skjema overføres feltverdiene via superglobale $_GET, $_POST eller $_REQUEST til neste fil (side).
Egendefinert superglobal • Vi kan definere våre egne superglobale variabler som kan bevares over flere filer/sider. • Ved bruk av $_SESSION[”variabelnavn”] • Filen må starte med • Dette må være på hver side (php-fil) som bruker sessionvariablene. • <?php • session_start();
Eksempel <?php session_start(); $_SESSION["navn"]="Ole Olsen"; $_SESSION["adresse"]="Drammensveien 1"; $_SESSION["postnr"]=1001; ?> Dataene er nå lagt inn i sessionvariablene. <br/> <a href="session-1.php">Til neste side</a> Dataene er nå lagt inn i sessionvariablene. Til neste side <?php // fil session-1.php session_start(); ?> Her skal dataene vises : <br/> <?php echo "Navn : ".$_SESSION["navn"]."<br/>"; echo "Adresse : ".$_SESSION["adresse"]."<br/>"; echo "Postnr : ".$_SESSION["postnr"]."<br/>"; ?> Her skal dataene vises : Navn : Ole OlsenAdresse : Drammensveien 1Postnr : 1001
Sessions fortsetter • Ved start_session(); opprettes sessionID. • På server automatisk. • Unik for denne session (denne nettlesersesjon). echo "SesjonsID : ".session_id(); SesjonsID : 723312aa75fb443e43679476dbe1c656
Sesjoner forts. • Session-informasjonen lagres i midlertidige filer på server med filnavn startende med sess_ • Filene ligger på server inntil de slettes av sletterutiner (garbage collection). • Standard er 24 minutter etter at de er aksessert sist (kan endres i php.ini). • Men som oftest lenger da slettingen gjøres når det er ledige ressurser på serveren. sess_723312aa75fb443e43679476dbe1c656
En annen metode : Cookies • Tilstanden bevares på klienten (som temporære filer på din egen maskin). • Tjeneren legger ut cookiene på klientmaskinen dersom det ikke er sperret for det av nettleseren (maks 4 kbyte pr cookie) • Det er standard oppsett i nettleseren at cookies kan lagres på klientmaskinen • Må gjøre noe for å unngå at skrives til lokal disk
Bruk av cookies • Ikke start_session(); • setcookie(”variabelnavn”,”verdi”,<tid>); • Eks : setcookie(”navn”,”Ole Olsen”); • Tid er optional, dersom ikke den er satt • Gjelder for denne nettleser-sesjonen • Hente data som en annen superglobal: • $_COOKIE[”navn”]. • Gir ”Ole Olsen”.
Eksempel <?php setcookie("navn","Ole Olsen"); setcookie("adresse","Drammensveien 1"); setcookie("postnr","1001"); ?> Dataene er nå lagt inn i en cookie. <br/> <a href="cookie-1.php">Til neste side</a> Dataene er nå lagt inn i en cookie. Til neste side <?php // fil cookie-1.php echo "Her skal dataene vises : <br/>"; echo "Navn : ".$_COOKIE["navn"]."<br/>"; echo "Adresse : ".$_COOKIE["adresse"]."<br/>"; echo "Postnr : ".$_COOKIE["postnr"]."<br/>"; ?> Her skal dataene vises : Navn : Ole OlsenAdresse : Drammensveien 1Postnr : 1001
Cookie med tid <?php setcookie("navn","Ole Olsen", time()+3600*24); setcookie("adresse","Drammensveien 1",time()+3600*24); setcookie("postnr","1001",time()+3600*24); ?> Dataene er nå lagt inn i en cookie. <br/> <a href="cookie-1.php">Til neste side</a> I sekunder. Time() er nå. I dette tilfelle 3600 sekunder = 1 time * 24 timer = et døgn Filen C:/Doc..../torkra/Loal Settings/Temp/Cookies/torkra@www.iu.hio[1].txt
Fordeler /ulemper med Cookies • Fordeler • Kan lagre informasjon lenger. • Inntil cookien selv sletter seg (angitt i tidsparameter) eller til de midlertidige filene blir manuelt slettet. • Lager data over flere sesjoner (f.eks personlige preferanser i et nettsted). • Ulemper • Tjener / nettsted skriver filer ned på din maskin uten at du vet om det!