Avatar billede nicker Nybegynder
06. juni 2008 - 21:10 Der er 16 kommentarer

Php sessions forsvinder

hej
Jeg har et spørgsmål omkring sessions, de forsvinder når jeg skifter side. Forstår det ikke helt, for er sikker på det har virket. Det er en side der ligger hos one.com.

Lad os sige jeg har følgende kode på side1.php:

<?
session_start();
$_SESSION['varname'] = session_id();
print $_SESSION['varname'];
?>

Det udskriver 07cd237e742588dbfd145336907709d7 og burde nu være i session "varname" ikk?

Når jeg så går til side2.php med følgende kode:
<?
session_start();
print $_SESSION['varname'];
?>
så udskriver den ingenting.... Hvad gør jeg forkert?!?!
Avatar billede erikjacobsen Ekspert
06. juni 2008 - 21:18 #1
1) Du har selv fået slået cookies fra i din browser?
2) Du skifter mellem en www-adresse, og en ikke-www-adresse (og har en dum serveropsætning)?

Et link vil kunne hjælpe til afklaring.
Avatar billede nicker Nybegynder
06. juni 2008 - 21:27 #2
Ja selvfølgelig ;)

http://www.nicker.dk/side1.php
http://www.nicker.dk/side2.php

Det sker både i firefox og IE
bruger server hos one, så det burde meget gerne fungere fra deres side :)
Avatar billede erikjacobsen Ekspert
06. juni 2008 - 21:30 #3
Jeg kan se at ingen af de to sider sender en session-cookie med.
Avatar billede nicker Nybegynder
06. juni 2008 - 21:41 #4
Ja, men hvordan  kan det være. Side1.php burde da meget gerne oprette $_SESSION['varname'] = session_id(); .. eller hvad?
Avatar billede erikjacobsen Ekspert
06. juni 2008 - 21:54 #5
Jo, det virker sikkert også alle andre steder end lige på din konto på det web-hotel. Og så er jeg ikke sat i verden til at forsvare one.com ;)
Avatar billede nicker Nybegynder
06. juni 2008 - 22:08 #6
Er ikke helt med på hvad du mener. - Er der ingen løsning på problemet eller hvad?
Avatar billede erikjacobsen Ekspert
06. juni 2008 - 22:11 #7
Jamen, der er ikke noget galt med dit script. Det virker bare ikke hos dig. Problem hos one.com? Noget der (ikke) er krydset af i kontrolpanelt? Jeg ved det ikke...
Avatar billede dkfire Nybegynder
07. juni 2008 - 01:30 #8
Har du huske at slå fejlbeskeder til ??
Det ser ud til at der på side2.php er en bom fejl. Hvordan gemmer du de to sider ???
Avatar billede erikjacobsen Ekspert
07. juni 2008 - 08:28 #9
Der er faktisk en BOM både på side1.php og side2.php. Derfor vil session_start() ikke virke, og netop på one.com oplever vi tit at visning af fejlbeskeder er slået fra.

BOM har med UTF-8 at gøre:  http://unicode.org/faq/utf_bom.html

(En BOM er i sig selv ikke en fejl, men PHP forstår den ikke...)
Avatar billede nicker Nybegynder
07. juni 2008 - 09:34 #10
Så har jeg slået fejlbeskeder til. Nu får jeg på side1:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /customers/nicker.dk/nicker.dk/httpd.www/side1.php:1) in /customers/nicker.dk/nicker.dk/httpd.www/side1.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /customers/nicker.dk/nicker.dk/httpd.www/side1.php:1) in /customers/nicker.dk/nicker.dk/httpd.www/side1.php on line 2
55c43e818298df385eb33190eb1066bf

Og  på side2 det samme bare med side2.


Hvad skyldes det?
Avatar billede erikjacobsen Ekspert
07. juni 2008 - 09:38 #11
Det skyldes BOM - har du læst linket?
Avatar billede nicker Nybegynder
07. juni 2008 - 10:00 #12
Ja har læst linket, men er ikke helt med på hvad det er jeg skal ændre i mine filer?


Men nu har jeg prøvet at gemme mine sider som default, og ikke som UTF-8 mere. Og nu virker sessions helt fint uden problemer. Så i har i hvert fald ret, det er noget med utf-8.
Avatar billede erikjacobsen Ekspert
07. juni 2008 - 10:04 #13
Ja, og din editor. Man kan typiske gemme i ANSI (ca. iso-8859-1 agtigt) og som UTF i flere udgaver med og uden BOM.
Avatar billede nicker Nybegynder
07. juni 2008 - 10:04 #14
Nu prøvede jeg at gemme siden som UTF-8 NO BOM og så virker sessions også.

Skal jeg så gemme mine filer som UTF-8 NO BOM, eller er der en måde at komme uden om det på, så  jeg kan gemme mine filer som UTF-8?
Avatar billede erikjacobsen Ekspert
07. juni 2008 - 10:32 #15
Så længe PHP ikke kan indstilles til at ignorere BOM, så gem dem som "UTF-8 NO BOM" eller som "ANSI", afhængig af hvad du vil bruge som tegnsæt.
Avatar billede nicker Nybegynder
07. juni 2008 - 10:33 #16
Oki helt sikkert. Mange tak for hjælpen!! :)
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