webForumDet fria alternativet

Session problem i IE6.0

PHPur PHP

19 svar · 403 visningar · startad av UrMe

Medlem sedan apr. 2001762 inlägg
Frågan#1

Snacka om skumma saker :) ... jag gjorde ett inloggningscript för ett antal månader sedan som funkade perfekt i IE och Netscape (de enda webläsarna jag testade). Jag använder Sessions för inloggningen och hämtar information från mySQL databas.

Men jag har nu stött på ett problem med IE6.0.. det som händer är att man kan logga in och man kommer till index-sidan för inloggningen .. men sedan om man ska hoppa till nån annan sida inom inloggningssystemet så loggas man ut? .. alltså antar att sessionen inte finns kvar när man ska till nästa sida. Nu blir det ännu mer skumt ;) ... att för brorsan är det inga problem alls att logga in. Men för en polare går det helt enkelt inte.. utan han loggas ut när han ska till en undersida. Men det funkar skitbra med Netscape och t.om Opera funkar det för. Gissa vad.. det blir skummare :) Att ibland funkar det klockrent för mig med IE6.0 men oftast går det inte.
Är det nå inställning i IE6.0 som man måste göra? Har grubblat på detta länge nu.. kommer inte fram till nåt vettigt alls.

Medlem sedan mars 20007 896 inlägg
#2

Det kan ha att göra med inställningarna i IE6.0 är satta. Man kan ju sätta sin säkerhet lite hur som helst, med cookies o.s.v. Cookies måste kunna accepteras av klienten för att sessioner ska fungera.

Medlem sedan jan. 2002414 inlägg
#3

Lunarstorm! =)

LUNARSTORM!!!

Har kanske inte så jätte mycket med detta att göra men ändå lite :e.
När IE 6 precis hade släppts så hade jag vissa gånger problem med att logga in på lunarstorm (som använder sig av sessions (även om dom är i ASP))...och vissa gånger gick det hur bra som helst...Detta även fast jag inte ändrade några inställningar...Så det är nog nått fel i IE 6 som ibland tillåter samma cokies som den andra gånger vägrar befatta sig med vilket gör att ibland så fungerar sessions och ibland inte...

Medlem sedan apr. 2001762 inlägg
#4

Jorå.. cookies funkar bra.
Detta går över mitt förstånd.. ännu en orsak att hata microsoft lite mer ;)

Medlem sedan apr. 2001762 inlägg
#5

Åhh.. ingen som har samma problem och har en lösning på detta? .. blir tokig :)

Medlem sedan jan. 2002414 inlägg
#6

hmm...

fråga lunarstorm =)
nä men sessions har blivit lite bättre när jag surfar på lunarstorm men ibland så hänger sig hela sidan ordentligt...men om jag istället använder opera/IE5.5/NE så fungerar det...

Medlem sedan apr. 2001762 inlägg
#7

Nu bifogar jag koden här.. så kan ju nån vara snäll och kika lite på den för att se om det är nåt som är galet :) ... man vet ju aldrig med min kod .. hehe.

Detta står i varje .php fil ovanför html-taggen.

session_start();
session_register('username');
session_register('password');

Detta är själva loginsaken som kollar om användaren finns och skrivit in rätt. Detta inkluderas precis efter session sakerna:

session_start();

if(IsSet($nick))

$username = $nick;

if(IsSet($pass))

$password = $pass;

$logedin = mysql_query("SELECT * FROM tff_members WHERE nick = '$username' and password = '$password'");

$num_rows = mysql_num_rows($logedin);

if($num_rows == '0')

Header("Location: ../memberlogin.php?message=error");

Nån som ser nåt galet?

EDIT: Hmm.. ser nu att jag startar session 2 ggr.. kanske det som är felet :) .. ska kolla upp det hehe

Medlem sedan apr. 2001762 inlägg
#8

Nej det funkade ändå inte så bra.. det skumma är att det funkar bra att fortsätta till en speciell undersida.. men bara till den också.. så jag funderar på om det inte är nåt som är fel i koden ändå.. bara att jag inte hittar det :/

EDIT: Förresten ser ni att jag firar 1-års jubileum på forumet idag :))

Medlem sedan apr. 2001762 inlägg
#9

Ingen som har nån lösning?.. är samma fel i nyaste netscape också :/ .. måste ha kodat fel på nåt sätt

Medlem sedan apr. 2001762 inlägg
#10

Okej.. ingen behöver tänka mera.. problemet är löst.. liiite pinsamt fel faktiskt ;)

Medlem sedan jan. 2002414 inlägg
#11

mitt vanliga inlägg då :)

förklara gärna hur du gjorde ;)

Medlem sedan mars 20021 152 inlägg
#12

Liten utility som raderar cookies? :e

Medlem sedan apr. 2001762 inlägg
#13

Vågar jag skämma ut mig genom att säga vad jag hade missat? ;)

Det som var felet var att jag inte hade

session_start();
session_register('username');
session_register('password');

i varje .php fil :) ... jag hade bara session_start();
hehe

Medlem sedan jan. 2002414 inlägg
#14

hehe...

...alla gör vi mistag men vissa gör större :birp

Medlem sedan apr. 2001109 inlägg
#15

du ska nog bara ha session_start() i varje sida, annars kan man sätta sessionsvariabler genom urlen:
index.php?page=admin&login=true

session_register() ska man bara ha när 1 gång när man sätter den, vad jag vet iaf...
Läs artikeln på phpportalen om säkerhet, fast den är inte helt korrekt (har jag också för mig), men intressant..

hinner inte kolla nu, måste ut och supa =)

Medlem sedan mars 20007 896 inlägg
#16

Läs artikeln på phpportalen om säkerhet, fast den är inte helt korrekt

Tala gärna om vad som inte var korrekt, så kan jag ändra min artikel ( Om jag nu har fel, vill säga ;) ). :)

Medlem sedan aug. 20002 975 inlägg
#17

dab, försök inte slå SPiN på fingrarna. Av någon anledning brukar det visa sig till slut att han får rätt. :)

Så till session.

Det går att klara sig med enbart session_start(), men då måste man hämta hem variablerna med $HTTP_SESSION_VARS i sitt skript. Själv hade jag för att slippa skriva om mitt skript gjort såhär:

session_start();
if (!isset($HTTP_SESSION_VARS['username']) || !isset($HTTP_SESSION_VARS['password'])){
	header("Location: login.php");
	exit;
}
session_register('username');
session_register('password');

eller så här:

session_start();
if (!isset($HTTP_SESSION_VARS['username']) || !isset($HTTP_SESSION_VARS['password'])){
	header("Location: login.php");
	exit;
}
$username = $HTTP_SESSION_VARS['username'];
$password = $HTTP_SESSION_VARS['password'];

Den andra varianten hade man varit tvungen att använda om register_globals=off.
I PHP>=4.1.0 använder man $_SESSION istället för $HTTP_SESSION_VARS.

Tittar man på UrMes kod så får man intrycket att han kollar användarnamn/lösenord gentemot databasen på VARJE sida, och isåfall måste hans kod vara mer än tillräcklig, och koden jag skrev ovan fullständigt onödig.

Medlem sedan apr. 2001109 inlägg
#18

hehe =)

jag försökte inte slå honom på fingrarna ;)

Men jag skrev att jag hade för mig det, och jag har fortfarande för mig att det i artikeln stod något om att man inte kunde använda isset vid HTTP_SESSION_VARS (men jag kan ha fel), och det kan man ju visst...

men jag är garanterat för full för att kolla det där nu =)))

Medlem sedan mars 20007 896 inlägg
#19

Jäpp, så stod det och jag har också märkt att man kan det! :)

Det stod förut i PHP-manualen att $HTTP_*_VARS alltid var satta, och att man inte kunde använda isset () på dem. Vet inte om det fortfarande står så, men jag har inte orkat ändra... :r

Medlem sedan apr. 2001109 inlägg
#20

jag vet inte heller, har som sagt inte orkat kolla, imorgon isf =))

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