Avatar billede dp2001 Juniormester
26. juli 2004 - 22:15 Der er 14 kommentarer og
1 løsning

Håndtering af sessions i PHP

Jeg læser pt. "Teach yourself PHP in 24 hours". Bogen er fra 2000 eller cirka deromkring (..."og der var krig i Korea").

Anyway - jeg er allerede stødt på nogle eksempler på at bogen er lidt out-dated.

Jeg formoder, at dette også angår håndtering af sessions, da jeg helt tilfældigt så et andet indlæg hvor man hentede værdien af en session vha. $_SESSION['variabel']

Jeg gør det sådan pt:

//                    session_register("session_online");
$session_online = true;
//

Spørgsmål:

1) Kan jeg initialisere session variabel og tildele værdi med det samme?
2) Kan det gøres nemmere eller mere optimalt og hvordan henter jeg efterfølgende en session variabel


Jeg er ikke så langt med min kodning endnu (er ved at omskrive alt fra ASP til PHP), så jeg vil hellere rette det nu end senere.
Avatar billede detox Nybegynder
26. juli 2004 - 22:22 #1
1) Ja, det kan du:
  $_SESSION['test'] = 'noget';
2) Du henter den med:
  echo $_SESSION['test'];
    eller:
  $str = $_SESSION['test'];
Avatar billede sukos Juniormester
26. juli 2004 - 22:23 #2
<?php
session_start();
$_SESSION["var"] = "Et eller andet";
echo $_SESSION["var"];

$_SESSION["var"] = "Noget helt andet";
echo $_SESSION["var"];

?>
Avatar billede dp2001 Juniormester
26. juli 2004 - 22:41 #3
og hvordan unclearer jeg alle sessions?
Avatar billede detox Nybegynder
26. juli 2004 - 22:43 #4
$_SESSION = array();
Avatar billede detox Nybegynder
26. juli 2004 - 22:48 #5
Eller evt:

$_SESSION = array();
session_destroy();
Avatar billede sukos Juniormester
26. juli 2004 - 22:54 #6
Eller

unset($_SESSION["var"]);

for ikke at slette alle sessions, som detox's sidste eks. vil gøre
Avatar billede dp2001 Juniormester
26. juli 2004 - 23:57 #7
i mange scripts vil jeg skulle tjekke om en bestemt session-variabel er sat til en bestemt værdi - og i nogle tilfælde vil den slet ikke være sat - vil det betyde at jeg skal skrive alle mine tjek a la:

if (isset($_SESSION['online']) and $_SESSION['online'] == true)
{
    // Av, av, av - det er da godt nok besværligt.
}

- eller er der en nemmere måde?
Avatar billede sukos Juniormester
27. juli 2004 - 00:23 #8
Jeg ville nok gøre så'n:

function tjek_sess($var, $val="ok") {

    if(isset($_SESSION[$var])) {
        if($_SESSION[$var] == $val) {
    return true;
    }
  }
return false;
}


for så at bruge funktionen hvor den er nødvendig:

if(true == tjek_sess("online", "true")) {
echo"ok";
}
Avatar billede Syska Mester
27. juli 2004 - 08:24 #9
hmm, enten er der noget jeg ikke lige forstår, men burde:
function tjek_sess($var, $val="ok") {
ikke være:
function tjek_sess($var, $val) {
eller giver det jo ikke nogen mening at sende true til funktionen da du sætter den i funktionen....

Bare en tanke...

// ouT
Avatar billede Syska Mester
27. juli 2004 - 08:26 #10
Lige en side note ting....

Fandme rart at se at der er nogen der læser boger, og så spørger, keep up the good work dp2001 :-P

http://dk2.php.net står der også alt hvad man vil vide....

så en bog og overstående link kan man nå rigtig langt

// ouT
Avatar billede dp2001 Juniormester
27. juli 2004 - 08:57 #11
Tak for input! detox og susos deler i porten (hvis svar)

buzzzz -> jo tak, jeg gör mit bedste. Har väret vant til at kode i ASP, men finder PHP mere "tilträkkende", saa nu har jeg besluttet mig for at läre det ordentligt at kende.
Avatar billede sukos Juniormester
27. juli 2004 - 13:21 #12
svar...

og buzzzz->
skulle nok hellere være:

function tjek_sess($var="online", $val="true") {

    if(isset($_SESSION[$var])) {
        if($_SESSION[$var] == $val) {
    return true;
    }
  }
return false;
}


for så at bruge funktionen hvor den er nødvendig:

if(true == tjek_sess()) {
echo"ok";
}

eller for så at tjekke en anden session og værdi:

if(true == tjek_sess("nysession", "juhu")) {
echo"ok";
}

Altså, hvis det er samme session og værdi som for det meste som skal tjekkes, vil det nok være det nemmeste, men samtidig med muligheden for at tjekke andre sessions/værdier
Avatar billede sukos Juniormester
27. juli 2004 - 13:22 #13
iøvrigt bryder jeg mig ikke om at sætte en værdi til "true".
Altså hellere
$_SESSION["online"] = "ok"
f.eks.
Avatar billede Syska Mester
27. juli 2004 - 14:13 #14
sq da skide smart, så har jeg også lært noget nyt i dag :-P

Altid rart med goldkorn....så kan man jo nemt udvide en funktion ude at skulle til at rette alle steder hvis man så bare sætter den til en værdi, og det kun er en ekstra ting til hele funktionen.... nice ting....

// ouT

og husk, man bliver aldrig for gammel til at lære noget nyt :-P
Avatar billede dp2001 Juniormester
27. juli 2004 - 19:04 #15
takker endnu engang.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester