Problemer med loginsystem
HejJeg har lavet nedenstående script, til at checke om en brugers indtastede brugernavn og password er korrekt. Hvis brugeren indtaster et forkert brguernavn, melder den fejl lige som den skalm men hvis passwordet derimod er forkert, logger den stadigvæk brugeren ind. Hvordan kan det være, og bør jeg opbygge mit script på en anden måde?
Scriptet:
<?
$opret = $_REQUEST['opret'];
$login = $_REQUEST['login'];
$brugernavn = $_REQUEST['brugernavn'];
$password = $_REQUEST['password'];
$self = $_SERVER['REQUEST_URL'];
$form = "<div class='right_login'>
<form action='$self' method='post'>
brugernavn <br /><input class='input_login' type='text' name='brugernavn' />
<p />
adgangskode <br /><input class='input_login' type='password' name='password' />
<input type='submit' name='login' value='Login'>
<input type='submit' name='opret' value='Opret'>
</form></div>";
if(isset($_SESSION['user'])) {
echo "Navn: {$_SESSION['user']}";
} elseif(!isset($opret) && !isset($login)) {
echo "$form";
} elseif(isset($opret)) {
header("location:index2.php?side=opret");
} else {
if($brugernavn == "" || $password == "") {
echo "$form";
echo "<div class='red'>Begge felter skal udfyldes</div>";
} else {
$fejl = "<div class='red'>Brugernavn eller adgangskode er forkert</div>";
mysql_connect("localhost", "root");
mysql_select_db("feely");
$result_user = mysql_query("SELECT brugernavn FROM users WHERE brugernavn = '$brugernavn'") or die(mysql_error());
$number_user = mysql_num_rows($result_user);
if($number_user < 1) {
echo "$form";
echo "$fejl";
} else {
$result_pw = mysql_query("SELECT password FROM users WHERE brugernavn = '$brugernavn'") or die(mysql_error());
$row = mysql_fetch_assoc($result_pw);
$pw = $row['password'];
if(empty($pw)) {
echo "$form";
echo "$fejl";
} else {
$_SESSION['user'] = $brugernavn;
$_SESSION['id'] = $row['id'];
}
}
}
}
?>
