Gå til innhold

feil i login script


Anbefalte innlegg

Va er feilen her:

 

login.php

<html>
<body>
<form method="post" action="loginaction.php">
Nick: <br>
<input type="text" name="brukernavn">
<br>
Passord: <br>
<input type="password" name="passord">
<br>
<input name="Submit" type="submit" value="Login">
</form>
</body>
</html>

 

loginaction.php

<?php 
if($_POST['brukernavn'] && $_POST['passord']) 
{
$hostname = "localhost"; 
$user = "root"; 
$password = "*****"; 
$db = "db"; 
$connection = @mysql_connect($hostname, $user, $password) or die("Umulig 
å få kontakt med database"); 
@mysql_select_db($db); 
//Lager krypteringsfunksjonen 
function sjekker_pw($oppgitt, $lagret) 
{ 
$salt = substr($lagret, 0, CRYPT_SALT_LENGTH); 
$oppgitt_kryptert = crypt($oppgitt, $salt); 
return($lagret == $oppgitt_kryptert); 
} 
$sjekker_brukernavn = @mysql_query("SELECT id,passord FROM medlemmer 
WHERE brukernavn='{$_POST['brukernavn']}'"); 
if(@mysql_num_rows($sjekker_brukernavn) == 0) 
{ 
print("Feil brukernavn"); 
} 
else 
{ 
$hentet_passord = @mysql_fetch_array($sjekker_brukernavn); 
if(!(sjekker_pw($_POST['passord'], $hentet_passord['passord']))) 
{ 
print("Passordet var feil"); 
} 
else 
{ 
session_start(); 
$_SESSION['innlogget'] = 1; 
$_SESSION['brukernavn'] = $brukernavn; 
$_SESSION['passord'] = $hentet_passord['passord']; 
header("Location: innlogget.php"); 
} 
} 
} 
else 
{ 
print("Du må fylle ut både brukernavn og passord!"); 
} 
?> 

 

innlogget.php

<?php 
session_start(); 
if($_SESSION['brukernavn'] && $_SESSION['passord']) 
{ 
//Logger på databasen. Legg inn din egen info 
$hostname = "localhost"; 
$user = "root"; 
$password = "****"; 
$db = "db"; 
$connection = @mysql_connect($hostname, $user, $password) or die("Umulig 
å få kontakt med database"); 
@mysql_select_db($db); 
//Sjekker passord og brukernavn med database 
$henter_bruker = @mysql_query("SELECT brukerid FROM medlemmer WHERE brukernavn='{$_SESSION['brukernavn']}' 
AND passord='{$_SESSION['passord']}'"); 
if(@mysql_num_rows($henter_bruker) == 0) 
{ 
print("Feil brukernavn og/eller passord!"); 
} 
else 
{ 
//Nå er brukeren logget inn! 
print("Du er nå logget inn");  
} 
} 
else 
{ 
print('Du må være innlogget for å nå disse sidene! <a href="login.php"> Tilbake </a>'); 
} 
?>

 

Tror selve feilen ligger i "innlogget.php", fordi der er passordet forsatt krypta.

 

Takk for all hjelp.

 

Mvh.

Tore 'BoreN' Bore

Lenke til kommentar
Videoannonse
Annonse

Hvis det du mener er her at $_SESSION['passord'] er kryptert, så har du helt rett i det. I linje 36 i logainaction.php setter du den lik $hentet_passord['passord'], som litt tidligere er hentet fra databasen.

 

Hvis du ønsker å lagre det ukrypterte passordet i sessionen må du bruke $_POST['passord'], men da vil du få problemer med sjekken i innlogget.php (regner med at det er den krypterte varianten du har lagret i databasen).

 

EDIT:

Jeg oppdaget en annen ting nå:

i loginaction.php i funksjonen sjekker_pw() bruker du deler av $lagret (som er passordet lagret i db) til salt. For at crypt() skal gi samme resultatet hver gang den kjøres, må den jo ha samme salt, men verdien av $lagret kunne du umulig vite da passordet ble lagret i databasen. Vil gjette på at du har brukt passordet selv som salt, og det som skal stå der er:

$salt = substr($oppgitt, 0, CRYPT_SALT_LENGTH); 

 

-Simen

Endret av tussiesel
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...