webForumDet fria alternativet

Sessionsproblem

PHPur PHP

8 svar · 1 006 visningar · startad av prplxr

Medlem sedan juni 2012581 inlägg
Frågan#1

Ahopp, vi tar en till tråd. Jag har liksom kört fast lite. Tror inte någon ingående förklaring behövs, men om det är något så säg till.

Denna kod fungerar:

if(isset($_SESSION['callback'])) {
	if($_SESSION['callback']) {
		echo "<script type=\"text/javascript\">alert('Du har en återkoppling till detta företag inom tio minuter!');</script>";
	};
};

men inte denna:

if(isset($_SESSION['callback'])) {
	if($_SESSION['callback']) {
		echo "<script type=\"text/javascript\">alert('Du har en återkoppling till detta företag inom tio minuter!');</script>";
	};
	unset($_SESSION['callback']);
};

Den sista outputtar ingenting. $_SESSION['callback'] är en boolean och har förväntat värde (true respektive false när den ska). Inte heller fungerar det att använda sig av "$_SESSION['callback'] = FALSE" istället för unset(). Så fort den biten kod finns med i if-satsen så hoppas echo-raden över.

Varför? :S

Medlem sedan jan. 2005953 inlägg
#2

Koden fungerar för mig.

P.S.
Nyfiken: Varför har du semikolon efter måsvinge? :)
Det fungerar ju, men är helt onödigt.
D.S.

Medlem sedan juni 2012581 inlägg
#3

Väldigt lurigt, må jag säga. Det fungerar inte här. Jag är verkligen totalt lost nu. Har du någon aning om var man kan börja leta problem?

Att jag använder semikolon efter måsvinge är bara en smaksak. Jag tycker mig kunna urskilja var loopar och liknande slutar lättare, men det kan också bara vara hjärnspöken. :P

Medlem sedan jan. 2005953 inlägg
#4

Du behöver nog visa lite mer kod :)
Har du aktiverat visning av PHP-felmeddelanden?
Är du helt säker på innehållet i $_SESSION['callback']?
Kör en var_dump() precis för unset().

Medlem sedan juni 2012581 inlägg
#5

Jag har aktiverat visning av felmeddelanden och jag är HELT säker på innehållet av två orsaker, dels fungerar det fint om jag tar bort unset()-raden och dessutom har jag kört en var_dump() innan och kikat vad den har för värde. Av den förstnämnda orsaken så ser jag heller inte hur felet kan ligga någon annanstans i koden. Det här förbryllar mig något oerhört. :-S

Medlem sedan juni 200443 inlägg
#6

använder du output buffering ?
testa att slå på och av det

Medlem sedan juni 2012581 inlägg
#7

danjel skrev:

använder du output buffering ?
testa att slå på och av det

Det gjorde ingen skillnad på den punkten. :(

Medlem sedan juni 200443 inlägg
#8

ok, kan det vara nåt relaterat liknande som denna om du använder header redirect
http://stackoverflow.com/questions/6563928/echo-session-then-unset

Medlem sedan juni 2012581 inlägg
#9

danjel skrev:

ok, kan det vara nåt relaterat liknande som denna om du använder header redirect
http://stackoverflow.com/questions/6563928/echo-session-then-unset

TACK! Det där gav mig en knuff i rätt riktning. Jag hade faktiskt en if-sats som exekverade en SQL-fråga och sedan redirectade med hjälp av header(). Lade till ytterligare ett påstående till if-satsen så den bara körs om det verkligen behöver (vilket det inte gör när det problemet handlar om ska köras).

TACK ÅTERIGEN! :-D

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