UrMeMedlem sedan apr. 2001797 inlägg
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.
SPiNMedlem sedan mars 20005 832 inlägg
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.
PicklezzMedlem sedan jan. 2002448 inlägg
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...
UrMeMedlem sedan apr. 2001797 inlägg
Jorå.. cookies funkar bra.
Detta går över mitt förstånd.. ännu en orsak att hata microsoft lite mer ;)
UrMeMedlem sedan apr. 2001797 inlägg
Åhh.. ingen som har samma problem och har en lösning på detta? .. blir tokig :)
PicklezzMedlem sedan jan. 2002448 inlägg
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...
UrMeMedlem sedan apr. 2001797 inlägg
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
UrMeMedlem sedan apr. 2001797 inlägg
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 :))
UrMeMedlem sedan apr. 2001797 inlägg
Ingen som har nån lösning?.. är samma fel i nyaste netscape också :/ .. måste ha kodat fel på nåt sätt
UrMeMedlem sedan apr. 2001797 inlägg
Okej.. ingen behöver tänka mera.. problemet är löst.. liiite pinsamt fel faktiskt ;)
PicklezzMedlem sedan jan. 2002448 inlägg
mitt vanliga inlägg då :)
förklara gärna hur du gjorde ;)
joserMedlem sedan mars 2002634 inlägg
Liten utility som raderar cookies? :e
UrMeMedlem sedan apr. 2001797 inlägg
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
PicklezzMedlem sedan jan. 2002448 inlägg
hehe...
...alla gör vi mistag men vissa gör större :birp
dabMedlem sedan apr. 2001109 inlägg
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 =)
SPiNMedlem sedan mars 20005 832 inlägg
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 ;) ). :)
MatteMedlem sedan aug. 20002 970 inlägg
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.
dabMedlem sedan apr. 2001109 inlägg
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 =)))
SPiNMedlem sedan mars 20005 832 inlägg
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
dabMedlem sedan apr. 2001109 inlägg
jag vet inte heller, har som sagt inte orkat kolla, imorgon isf =))