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...
Dat snap ik niet helemaal ......:-( :-$
Let even op dat als je een select uitvoerd aan de hand van username en password, dat dit in je database Unique moet zijn!

Ja, niet twee keer dezelfde username!

Maar goed, ik snap het nog steeds niet...
Bump,

Weet iemand een oplossing?

Wat ik wil is een inlog script. (ik maak het zelf)

Dit is wat ik heb tot nu toe:

<?php
/* Deze sql is uitgevoerd:
CREATE TABLE `users` (
`id` INT( 8 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`user` VARCHAR( 255 ) NOT NULL ,
`pass` VARCHAR( 32 ) NOT NULL
) TYPE = MYISAM ;
*/

if (!isset($_POST['submit'])) {
   echo '<fieldset><legend>Login</legend>';
   echo '<form name="login" action="' . $_SERVER['PHP_SELF'] . '" method="post">';
   echo '<input type="text" class="text" size="12"  name="user" />&nbsp;';
   echo '<input type="password" class="text"  size="12" name="pass" />&nbsp;';
   echo '<input type="submit" name="submit" value="Log in!" class="text" />';
   echo '</form>';
   echo '</fieldset>';
} else {
   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';
      $login = "ingelogd";
   } else { 
      echo '<h1>Verkeerde gebruikersnaam of verkeerd wachtwoord!</h1> <a href="index.php">Probeer opnieuw</a>'; 
   }
}
?>



Dit bestand wil ik kunnen includen op een pagina zodat die pagina beveiligd is.
<?php
session_start();
/* Deze sql is uitgevoerd:
CREATE TABLE `users` (
`id` INT( 8 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`user` VARCHAR( 255 ) NOT NULL ,
`pass` VARCHAR( 32 ) NOT NULL
) TYPE = MYISAM ;
*/

if (!isset($_POST['submit'])) {
echo '<fieldset><legend>Login</legend>';
echo '<form name="login" action="' . $_SERVER['PHP_SELF'] . '" method="post">';
echo '<input type="text" class="text" size="12" name="user" />&nbsp;';
echo '<input type="password" class="text" size="12" name="pass" />&nbsp;';
echo '<input type="submit" name="submit" value="Log in!" class="text" />';
echo '</form>';
echo '</fieldset>';
} else {
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';
$login = "ingelogd";
} else {
echo '<h1>Verkeerde gebruikersnaam of verkeerd wachtwoord!</h1> <a href="index.php">Probeer opnieuw</a>';
}
}
?>

btw dit script is best vatbaar voor SQL Injection als magic_quotes_gpc() uitstaat.
Is dat goed?
Dat het 'best vatbaar voor SQL Injection' is als magic_quotes_gpc() uitstaat? En wat is dat?
Maar als ik nu ingelogd ben, en naar een andere pagina link die ook beveiligd is moet ik weer opnieuw mijn wachtworod invullen. Hoe kan ik dat veranderen?
door een safe.php te maken en niet inloggen.php op iedere pagina te includen
Mm, ik snap het nog steeds niet, sorry :-(

Reageren