webForumDet fria alternativet

Ett sessionproblem

21 svar · 250 visningar · startad av Viking

VikingMedlem sedan maj 2000977 inlägg
#1

Hej, jag har ett litet problem med en session här. Den funkar när $landsession är tom, utan värde, men när man ger den ett värde, t ex Sverige, skriver webbläsaren ut "Din session säger att du inte är från Sverige..."

Uppskattar hjälp :)

<?PHP

$connect = mysql_connect("localhost", "***", "***");
           mysql_select_db("vallgren");

session_start();
$landSession = "Sverige";
session_register("landSession");

if($HTTP_SESSION_VARS['landSession'] == "Sverige")
{ 
   echo "Din session säger att du är från Sverige!"; 
} 
else 
{ 
   echo "Din session säger att du inte är från Sverige..."; 
}

session_unregister ( "landSession" );
session_destroy();

?>
LavveMedlem sedan nov. 200134 inlägg
#2

Du har glömt ett litet $-tecken på raderna där det står
session_register("landSession");
och
if($HTTP_SESSION_VARS['landSession'] == "Sverige")
och
session_unregister ( "landSession" );

------------------
ID1: PIII 600, 128, 14GB, 17", Win98SE
ID2: PII 400, 192, 12GB, 17", CDRW, Win98SE/Win2KPro
ID3: PI 166, 128, 3GB, 15", Win98SE

VirrdoMedlem sedan okt. 2001167 inlägg
#3

Lavve: man ska inte använda $ framför variabler i sessionskommandon (såsom session_register("")).

Tyvärr sitter jag för tillfället i skolan och kan därför inte kontrollera vad de är för någe fel...

------------------
Bambadam !@#

VikingMedlem sedan maj 2000977 inlägg
#4

Lavve: Det blir ingen skillnad om man har det eller inte... :(

VikingMedlem sedan maj 2000977 inlägg
#5

Nån som vet vad felet är? :)

ChavezMedlem sedan maj 20001 297 inlägg
#6

Börja med och registrera den innan du tilldelar den ett värde. Sedan brukar jag aldrig använda session_start() när jag ändå registrerar dem med session_register(). Inte helt hemma på sessions, men testa! :)

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

Första PHP portalen på svenska!!

VirrdoMedlem sedan okt. 2001167 inlägg
#7

Chavez: man är ila tvungen att ha med session_start(); i varje fil som man använder sessions i annars fungerar det inte överhuvudtaget.

------------------
Bambadam !@#

VikingMedlem sedan maj 2000977 inlägg
#8

Chavez: Hur menar du? :q

Web-TorMedlem sedan nov. 200011 794 inlägg
#9

Chavez menar nog att koden skall se ut så här:

session_start();
session_register("landSession");
$landSession = "Sverige";

Virrdo ->

man är ila tvungen att ha med session_start(); i varje fil som man använder sessions i annars fungerar det inte överhuvudtaget.

Inte om session.auto_start är satt till 1 i php.ini ;)

------------------
/Tor
www.tor.nu

[Redigerat av Web-Tor den 06 dec 2001]

oelbalMedlem sedan jan. 20013 016 inlägg
#10

Det är knepigt det här med sessioner. Jag rekommenderar http://www.php.net/manual/en/function.session-register.php för närmare instruktioner om session_register(). Att läsa igenom allt som användarna har skrivit hjälper ofta. Där återfinns ofta svar på många frågor.

När det gäller tilldelning av värde och registrering av variabel i en session så har jag inte läst något om att detta bör göras i en speciell ordning.

De flesta (inklusive mig) tycks göra på detta sättet, alltså inte som Chavez säger:

$namn = "Bertil"; 
session_register("namn");

------------------
Det händer att jag inte är mig själv. Då är jag någon annan.

ChavezMedlem sedan maj 20001 297 inlägg
#11

Ok, kan hända att de flesta inte gör som jag gjort. Men faktum kvarstår, jag registrerar alltid mina session variabler i början av filen (och det har fungerat hittils).

Känns på något sätt dump att tilldela någonting som inte existerar :)

------------------
<A HREF="mailto:chavez@post.netlink.se">Mvh Chavez
</A> UIN: 73975020

Första PHP portalen på svenska!!

VikingMedlem sedan maj 2000977 inlägg
#12

Det funkade inte bättre på Chavez' sätt... :(

Vad osm blir fel är att han inte fattar att jag faktiskt har gett min session värdet Sverige, utan visar det som att sessionen pekar påa tt man inte är från Sverige... :l

SPiNMedlem sedan mars 20005 832 inlägg
#13

Jag ser inte något fel direkt, men jämför mot kodexemplen i min artikel som finns på http://www.phpportalen.net - de fungerar excellent! :)

------------------
SPiN, bjorne.w@telia.com

-- Man vinner inte silver, man förlorar guld --

VikingMedlem sedan maj 2000977 inlägg
#14

SPiN: Gissa varifrån jag fått det där ;)

oelbalMedlem sedan jan. 20013 016 inlägg
#15

Chavez:

Känns på något sätt dump att tilldela någonting som inte existerar

$namn = "Bertil"; 
session_register("namn");

Hur menar du nu?
Variabeln existerar ju innan du registerar den?

------------------
Det händer att jag inte är mig själv. Då är jag någon annan.

[Redigerat av oelbal den 07 dec 2001]

YmerMedlem sedan dec. 200181 inlägg
#16

Hej hopp. Jag är med viking och försöker få det att funka med det går ej.

Koden som viking postade är ju en exempel kod från phpportalen. Den är nästan exakt likadan men ändå går det inte. Vad är fel :q
Hjälp plz

------------------
Har inte kommit på någon bra signatur än

VikingMedlem sedan maj 2000977 inlägg
#17

Haben Sie kein anung? :)

------------------
Detta är en signatur

MatteMedlem sedan aug. 20002 970 inlägg
#18

Är inte så säker på det här med sessions, men min misstanke är att poster i $HTTP_SESSION_VARS sätts först när man lämnar sidan. Om man istället sätter posterna direkt bör det fungera.

session_register("landSession");
$HTTP_SESSION_VARS["landSession"] = "Sverige";

------------------
Fiskesällskapet Salamander

VikingMedlem sedan maj 2000977 inlägg
#19

Hur menar du?

------------------
Detta är en signatur

MatteMedlem sedan aug. 20002 970 inlägg
#20

om register_globals=off i php.ini måste man använda $HTTP_SESSION_VARS för att sätta och läsa sina session-variabler.
om register_globals=on läser man varabler direkt if($landSession=="Sverige") , och variabeln lagras i $HTTP_SESSION_VARS när man lämnar eller laddar om sidan. (Om jag nu förstått saken rätt).
I kod-exemplet överst är ju variabeln borttagen med session_unregister och session_destroy. Utan dessa bägge rader skulle du fått det rätt om du laddade om sidan.

------------------
Fiskesällskapet Salamander

Genererad på 373 ms · cache AV · v20260730165559-full.f96bc7eb