Rinox Skrevet 19. april 2007 Del Skrevet 19. april 2007 Hei! Nå har jeg enda et problem i PHP som må fikses. På en av mine nettsider har jeg muølighet for registrering og innlogging, men innloggingen funker ikke, selv om registreringen legger inn alt i databasen. Hvorfor det? Registrering: Klikk for å se/fjerne innholdet nedenfor <?php ob_start(); include_once "config.php"; if (isset($_POST['register'])) { $username = $_POST['username']; $password = $_POST['pass']; $cpassword = $_POST['cpass']; $email = $_POST['emai1']; if( empty($username) || empty($password) || empty($cpassword) || empty($email) ) { $output = 'Some fields were left empty.'; } elseif($password != $cpassword) { $output = 'Passwords do not match'; } elseif (mysql_num_rows(mysql_query("SELECT username FROM users WHERE username = " . Quote_Smart($username))) > 0) { $output = 'The email-address is already in use'; } elseif (mysql_num_rows(mysql_query("SELECT email FROM users WHERE email = " . Quote_Smart($email))) > 0) { $output = 'The username is already in use'; } else { $password = sha1($password); $query = mysql_query("INSERT INTO users (username, password, email) VALUES(" . Quote_Smart($username) . ", " . Quote_Smart($password) . "," . Quote_Smart($email) . ")"); $output = 'Registreringen var vellykket! Du kan trykke <a href="login.php">her</a> for å logge inn.'; } } else { $output = '<form method="POST"> Brukernavn: <input type="text" size="15" maxlength="25" name="username"><br /> Passord: <input type="password" size="15" maxlength="25" name="pass"><br /> Gjenta passord: <input type="password" size="15" maxlength="25" name="cpass"><br /> E-Post: <input type="text" size="15" maxlength="25" name="emai1"><br /> <input name="register" type="submit" value="Bli medlem!"> </form>'; } echo $output; ?> Login: Klikk for å se/fjerne innholdet nedenfor <?php oB_start(); // allows you to use cookies. include("config.php"); if (!$logged[username]) { if (!$_POST[login]) { echo(" <center><form method='POST'> <table> <tr> <td align='right'> Brukernavn: <input type='text' size='15' maxlength='25' name='username'> </td> </tr> <tr> <td align='right'> Passord: <input type='password' size='15' maxlength='25' name='password'> </td></tr><tr> <td align='center'> <input type='submit' name='login' value='Login'> </td></tr><tr> <td align='center'> <a href='register.php'>Registrer her!</a> </td></tr></table></form></center>"); } if ($_POST[login]) { // the form has been submitted. We continue... $username=$_POST['username']; $password = md5($_POST[password]); // the above lines set variables with the submitted information. $info = mysql_query("SELECT * FROM users WHERE username = '$username'") or die(mysql_error()); $data = mysql_fetch_array($info); if($data[password] != $password) { // the password was not the user's password! echo "Incorrect username or password!"; }else{ // the password was right! $query = mysql_query("SELECT * FROM users WHERE username = '$username'") or die(mysql_error()); $user = mysql_fetch_array($query); // gets the user's information setcookie("id", $user[id],time()+(60*30), "/", ""); setcookie("pass", $user[password],time()+(60*30), "/", ""); // the above lines set 2 cookies. 1 with the user's id and another with his/her password. echo ("<meta http-equiv='Refresh' content='0; URL=http://localhost'>"); // modify the above line...add in your site url instead of yoursite.com } } } else { // we now display the user controls. $new = mysql_query("select * from pmessages where unread = 'unread' and touser = '$logged[username]'"); $new = mysql_num_rows($new); echo ("<meta http-equiv='Refresh' content='0; URL=http://localhost/mafia'/>"); } switch($_GET[act]) { case 'logout': echo("Du er nå logget ut"); break; } ?> Lenke til kommentar
Bakke Skrevet 19. april 2007 Del Skrevet 19. april 2007 Jeg legger merke til at du bruker sha1 hash på passordet under registrering, og md5 under login. Har bare skumlest nå, så kan ikke garantere at det ikke er flere problemer. Lenke til kommentar
Rinox Skrevet 19. april 2007 Forfatter Del Skrevet 19. april 2007 Hmm.. Det var visst ikke bare det som var problemet... Jeg prøvde det, men det virket ikke.. Lenke til kommentar
Bakke Skrevet 19. april 2007 Del Skrevet 19. april 2007 (endret) Du får ingen feil melding? Bare at login er ugyldig, selv om du bruker rett brukernavn og passord? Er du sikker på at det er plass til hash'en i databasen, så den ikke blir kuttet? Har gjort denne feilen selv Endret 19. april 2007 av mhbakke Lenke til kommentar
Rinox Skrevet 19. april 2007 Forfatter Del Skrevet 19. april 2007 Sånn! Fikset det! Det var jo det at de brukerne som var registrert i databasen hadde allerede md5 passord! Lenke til kommentar
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å