webForumDet fria alternativet

Ett sessionproblem

PHPur PHP

21 svar · 250 visningar · startad av Viking

Medlem sedan maj 20003 652 inlägg
Frågan#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();

?>
Medlem sedan nov. 200121 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

Medlem sedan okt. 2001152 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 !@#

Medlem sedan maj 20003 652 inlägg
#4

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

Medlem sedan maj 20003 652 inlägg
#5

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

Medlem sedan maj 20001 953 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!!

Medlem sedan okt. 2001152 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 !@#

Medlem sedan maj 20003 652 inlägg
#8

Chavez: Hur menar du? :q

Medlem sedan nov. 200013 890 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]

Medlem sedan jan. 20014 973 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.

Medlem sedan maj 20001 953 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!!

Medlem sedan maj 20003 652 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

Medlem sedan mars 20007 896 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 --

Medlem sedan maj 20003 652 inlägg
#14

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

Medlem sedan jan. 20014 973 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]

Medlem sedan dec. 2001104 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

Medlem sedan maj 20003 652 inlägg
#17

Haben Sie kein anung? :)

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

Medlem sedan aug. 20002 975 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

Medlem sedan maj 20003 652 inlägg
#19

Hur menar du?

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

Medlem sedan aug. 20002 975 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

263 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
134 ms — hämta forumlista (db)
127 ms — hämta statistik (db)
134 ms — hämta tråd, inlägg och bilagor (db)