Just nu i M3-nätverket
Gå till innehåll
fltman

konstigheter med session_start()

Rekommendera Poster

fltman

Hej,

förmodligen så missar jag något elementärt men det hela känns konstigt tycker jag. Jag har två installationer av samma system på två windows maskiner, php, mysql och apache.

 

jag har satt en variabel $userstamp och kör bla följande kod:

 

----------------- cut ------------------

echo "userstamp1 : $userstamp<BR>";

session_start();

echo "userstamp2 : $userstamp<BR>";

----------------- cut ------------------

 

 

på den ena maskinen blir outputten mycket riktigt:

 

----------------- cut ------------------

userstamp1 : 6488163

userstamp2 : 6488163

----------------- cut ------------------

 

men på den andra blir det:

 

----------------- cut ------------------

userstamp1 : 6488163

userstamp2 : 9961572

----------------- cut ------------------

 

vad är det som händer och varför blir det så? Jag ser tyvärr ingen lösning.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Bj0rN

Det är tyvärr helt omöjligt för oss att hjälpa dig med så lite information...

 

Vad är variabeln $userstamp för något? Har den något med sessionen att göra? Körs det olika versioner av PHP på de två burkarna? Är den ena versionen över 4.1?

 

Posta lite kod så kanske vi kan stå till tjänst! :)

 

--

Some say I am crazy.. but the Voices in my head disagree...

 

[inlägget ändrat 2003-03-25 10:45:49 av Bj0rN]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
fltman

i det här fallet är koden strippad maximalt, jag har med andra ord plockat bort allt i det här exemplet för att hitta den plats där usersession krånglar till sig.

 

dvs koden ser ut så här:

 

<?

$usersatmp="6488163";

echo "userstamp1 : $userstamp<BR>";

session_start();

echo "userstamp2 : $userstamp<BR>";

?>

 

 

som du ser så är det inga konstigheter. De bägge maskinerna installerades samtidgt och har samma version av php (4.04).

 

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Daniel Wahlgren

rova stäng dina öppna sessions och testa igen. Det låter som om du testat tidigare med ettannat värde och den ligger nu registrerad i din session på ena servern.

 

Är Register_Gloals på rekomenderar jag att du tar bort Register_Globals och istället använder dig av

 

session_start();

$_SESSION[userstamp] = "vad du nu vill ha i din session";

 

Detta gör att värden som läggs in i en sessionsvariabel inte ersätter andra variabler.

 

**********

Om spelvåld påverkar unga, hur skulle pacmangenerationen se ut idag?

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Bj0rN

Du bör uppgradera din PHP version till en senare variant. 4.3.1 är den stabila releasen, men 4.3.2 RC2 finns och snart släpps väl den riktiga versionen av den. Du har alltså halkat efter lite i versionen av din PHP installation.

 

I 4.1 infördes nya sätt att hantera en massa olika variabler och annat, däribland i hur sessioner fungerar. Installera en senare version av PHP och testa att göra som Daniel Wahlgren skriver, använd dig av superglobalerna.

 

Jag tror det Daniel skriver är rätt, du kanske redan har satt ett värde i sessionen som efter att du startar den läggs till på ditt redan befintliga värde i userstamp variabeln eftersom register_globals är påslaget.

 

Om du installerar 4.3.1 så får du tänka om lite i ditt kodande, men du kommer få en mer lättöverskådlig kod som dessutom är säkrare än den du har idag med register_globals on och utan superglobaler.

 

--

Some say I am crazy.. but the Voices in my head disagree...

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...