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.
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.
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...
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...
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.
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 :))
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..
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:
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.
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 =)))
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