Anders Moen Skrevet 24. april 2007 Skrevet 24. april 2007 Prøver å logge inn, men jeg blir ikke logget inn..til og med kopiert fra et annet sted på sida mi, bare skifta sesjonsnavnet. Det over doctype (pga headers): <?php mysql_connect("localhost", "unavn", "pord"); mysql_select_db("db"); $username = mysql_real_escape_string($_POST['username']); $password = mysql_real_escape_string(md5($_POST['password'])); $sql="SELECT * FROM users WHERE username = '$username' and password = '$password'"; $result=mysql_query($sql); // Mysql_num_row is counting table row $count=mysql_num_rows($result); if($count == 1) { $_SESSION['session_online'] = TRUE; $_SESSION['username'] = mysql_result($result,0,"username"); $_SESSION['id'] = mysql_result($result,0,"id"); header('Location: index.php'); } else { header('location: index.php'); } } Sjekke om bruker er innlogget i body: <?php if ($_SESSION['session_online']) { echo 'Welcome back, ' . $_SESSION['username']; } else { ?> <form action="" method="post"> Username: <input type="text" name="username" /> Password: <input type="password" name="password" /> <input type="submit" name="login" value="Login" /><input type="reset" value="Reset" /> </form> <?php } ?> Noen som ser en el. flere feil? Tar gjerne i mot tips for å forbedre sikkerheten enda mer her
Anders Moen Skrevet 25. april 2007 Forfatter Skrevet 25. april 2007 (endret) Ja. Men den ligger enda lenger opp i dokumentet så den ble ikke med. Men ja, har med session_start Edit: Svarer på det som kanskje blir spurt om snart: Ja, passordene er md5 krypterte/hashet/samme hva det kalles i databasen Endret 25. april 2007 av Anders-Moen
zagen Skrevet 26. april 2007 Skrevet 26. april 2007 Kan være at session-variablene ikke får tid til å skrives til fil siden du sender ut en Location-header rett etterpå. Prøv med session_write_close() rett før header()
Alex Moran Skrevet 26. april 2007 Skrevet 26. april 2007 Sikker på at passordfeltet i databasen er er 32 tegn langt? md5 genererer en hash på 32 tegn, så hvis feltet er mindre, blir passordet feil.
Hayer Skrevet 26. april 2007 Skrevet 26. april 2007 Returnere ikke MySql en error hvis du f.eks prøver å sette inn 32tegn i en rute som har en max lengde på 15? Lykke til
Runar0 Skrevet 26. april 2007 Skrevet 26. april 2007 Returnere ikke MySql en error hvis du f.eks prøver å sette inn 32tegn i en rute som har en max lengde på 15? Lykke til 8475343[/snapback] Nei det gjør den faktisk ikkje. Teksten blir bare kutta av ved 15 tegn og lagt inn i databasen. Dreit meg ut ein gang med det der, 30 tengn lagt passord felt og sirka ein times arbeid før eg fant det ut:P
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå