WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Session problem (https://www.wn.se/forum/showthread.php?t=1047433)

robincox 2011-03-30 16:59

Session problem
 
Jag fattar noll av det här... följande kod skapar en session???

$apple = 'J74gTREgtFO9o9x90f5';
echo '<script type="text/javascript">alert("' . $apple . ' - ' . $_SESSION[$apple] . '");</script>';

Kan någon fatta varför?

emilv 2011-03-30 17:01

Nej, det gör den inte. Antingen har du session_start() någonstans i koden eller så är PHP-inställningen session.auto_start aktiverad.

robincox 2011-03-30 17:04

Citat:

Ursprungligen postat av emilv (Inlägg 20400350)
Nej, det gör den inte. Antingen har du session_start() någonstans i koden eller så är PHP-inställningen session.auto_start aktiverad.

Jo det finns en session_start(); i början av dokumentet. Det som är så himla skumt är att kör man alerten innan $apple='J74gTREgtFO9o9x90f5'; så får inget värde.

emilv 2011-03-30 17:06

Det är klart att den inte får något värde. Då ahr ju echo redan körts. Du vet väl skillnaden mellan servsersidan och klientsidan? PHP körs på servern. PHPs jobb är att skapa ett HTML-dokument som sedan skickas till webbläsaren. Det JavaScript du skrivit vet ingenting om dina sessionsvariabler.

robincox 2011-03-30 17:15

Citat:

Ursprungligen postat av emilv (Inlägg 20400352)
Det är klart att den inte får något värde. Då ahr ju echo redan körts. Du vet väl skillnaden mellan servsersidan och klientsidan? PHP körs på servern. PHPs jobb är att skapa ett HTML-dokument som sedan skickas till webbläsaren. Det JavaScript du skrivit vet ingenting om dina sessionsvariabler.

Det vet jag. Men att en session skapas när jag skapar en vanlig variabel är skitskumt

emilv 2011-03-30 17:19

Jag förstår inte vad du pratar om riktigt, kanske måste du beskriva problemet bättre? En session startas (och återupptas) när du kör session_start(). Menar du att det skapas en sessionsvariabel?

Det knasigaste med din kod är att du använder dig av $_SESSION[$apple], dvs av $_SESSION['J74gTREgtFO9o9x90f5']. Vad är det för konstigt påhitt?

Vad är det som händer med din kod, och vad förväntar du dig för resultat?

Jine 2011-03-30 17:19

Om session_start() finns i början av dokumentet skapas sessionen _DÄR_

Om du sedan använder $_SESSION[$apple] eller $_SESSION['vadsomhelst'] skapas en sessionvariabel med det värdet.

Vad är det du inte förstår?

robincox 2011-03-30 17:23

Citat:

Ursprungligen postat av Jine (Inlägg 20400356)
Om session_start() finns i början av dokumentet skapas sessionen _DÄR_

Om du sedan använder $_SESSION[$apple] eller $_SESSION['vadsomhelst'] skapas en sessionvariabel med det värdet.

Vad är det du inte förstår?

Jaha... så jag skapar alltså en session variabel genom att bara ha med $_SESSION['vadsomhelst'], jag trodde man var tvungen att ge den ett värde för att skapa den?

emilv 2011-03-30 17:24

Vilken sessionsvariabel är det som skapas (namn?) och vilket värde får den? Hur vet du att det skapats en sessionsvariabel?

robincox 2011-03-30 17:31

Citat:

Ursprungligen postat av emilv (Inlägg 20400360)
Vilken sessionsvariabel är det som skapas (namn?) och vilket värde får den? Hur vet du att det skapats en sessionsvariabel?

För att jag kör en alert på $_SESSION['apple'] innan den vanliga variabeln $apple har skapats, då finns det ingen sådan variabel och inget värde. Sen precis efter det att den vanliga variabeln $apple är skapad så kör jag samma alert och då finns variabeln med ett värde:

alert $_SESSION['apple']
$apple = 'ettVarde';
alert $_SESSION['apple']

Jag är väl medveten om att båda alerts kommer efter det att all php är färdig men varför de två olika resultaten i alertsen?


Alla tider är GMT +2. Klockan är nu 21:17.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson