Hoe kan ik controleren of de gebruiker een gebruiksersnaam met bijbehorende pass heeft ingevoerd?

Mijn tabel heeft 3 kollommen: id user pass

Zoiets:

<?php
if (
while($record = mysql_fetch_object($sql)){
echo '$user == '.$record->user.' && $pass == '.$record->pass.' || ';
}
?>


Ik heb echt geen id...
<?php
$sql = "SELECT * FROM users WHERE user='" . $username . "' AND pass = '" . $password . "'";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 1)
{
echo 'user gevonden en wachtwoord is correct';
}
?>
" vergete Roy ;-)

[edit]
opgelost
[/edit]
In plaats van één voor één alle gebruikers af te gaan kan je dat beter met een simpele query doen:

SELECT id, user FROM tabel WHERE user = $user AND pass = sha($pass);

Alleen dan netjes :).

Zoiets?


$query = "SELECT id FROM tabel
                WHERE user = '" . $_POST['user'] . "' &&
                           pass = '" . $_POST['pass'] . "'
                LIMIT 1
";


[edit]Te traag... ;P ![/edit]
<?php
$sql = "SELECT * FROM users WHERE user='" . $_POST['user'] . "' AND pass = '" . md5($_POST['pass']) . "'";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 1)
{
    echo 'user gevonden en wachtwoord is correct';
}
?> 



Dat werkt! Bedankt allemaal!
En hoe kan ik dan een sessie starten als user/pass goed zijn?

<?php

   include("connect.php");
   $sql = "SELECT * FROM users WHERE user='" . $_POST['user'] . "' AND pass = '" . md5($_POST['pass']) . "'";
   $result = mysql_query($sql);
   if (mysql_num_rows($result) == 1) {
      echo 'user gevonden en wachtwoord is correct';
      session_start();
      $_SESSION['login'] = "true";
   } else { 
      echo '<h1>Verkeerde gebruikersnaam of verkeerd wachtwoord!</h1> <a href="index.php">Probeer opnieuw</a>'; 
   }

?>


Als ik dat doe en met een geldige login inlog krijg ik dit:

user gevonden en wachtwoord is correct
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/borisbez/domains/xxx.nl/public_html/login/index.php:11) in /home/borisbez/domains/xxx.nl/public_html/login/index.php on line 42

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/borisbez/domains/xxx.nl/public_html/login/index.php:11) in /home/borisbez/domains/xxx.nl/public_html/login/index.php on line 42


En dat klopt inderdaad want dit staat boven de php-code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">;
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css" media="all" />
<title>Log In</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<p>


Ik wilde de pagina namelijk w3c valid maken. Hoe pak ik dit nu aan?
Je moet je sessie starten VOOR je eerste echo ;) ! Dus bovenaan het document...
Maar ik wil de sessie alleen starten als de user en pass goed is. Of kan dat niet?
Ik ga nu even (kwartiertje) weg en kom straks terug om verder te puzzelen.
starten kan geen kwaad, of je moet een header('location:goedingelogd.php'); opgeven waar je sessie word gestart

Reageren