Hallo iedereen,
Ik ben bezig met een inlogsysteem (nu nog super simpel), maar hij loopt vast op een simpel if statement..
De code:

<?php
if(md5($_POST['password']) == $user['password_md5']) {
	$_SESSION['login'] = $_POST['username'];
	echo "<span style='color: #FFF'>Logged in.</span>";
}
else {
	echo "<span style='color: #FFF'>User found but password wrong.</span><br />";
	echo md5($_POST['password']) . '<br />';
	echo $user['password_md5'];
}
?>

Als ik het goede wachtwoord invoer, geeft ie toch een error met daaronder beide MD5 wachtwoorden die dan hetzelfde zijn..
Voorbeeld:
Ik probeer in te loggen met de username sjaak met het wachtwoord truus dat in MD5 98e07194bf7b5c2b8258b52e6f4d259e is. In de database staat dus 98e07194bf7b5c2b8258b52e6f4d259e en hij vergelijkt hem. Daarna krijg ik alsnog een error dat het niet klopt. Weet iemand hoe dit zit? Heb ik een beginnersfout gemaakt:3?

Groeten, Kees.

EDIT: Groter stuk code:

<?php
$sql = "SELECT *
FROM `users`
WHERE username = '" . $_POST['username'] . "'";
	/*$sql2 = "SELECT *
FROM `users`
WHERE password_md5 = '" . md5($_POST['password']) . "'";*/
	$query = mysql_query($sql);
	//$query2 = mysql_query($sql2);
	if($query) {
		$user = mysql_fetch_array($query);
		$pass_db = md5($user['password']);
		if($user['password_md5'] == md5($_POST['password'])) {
			$_SESSION['login'] = $_POST['username'];
			echo "<span style='color: #FFF'>Logged in.</span>";
		}
		/*if($query2) {
			echo 'HAK';
		}*/
		else {
			echo "<span style='color: #FFF'>User found but password wrong.</span><br />";
			echo md5($_POST['password']) . '<br />';
			echo $user['password_md5'];
		}
	}
	else if(!$query) {
		echo "<span style='color: #FFF'>User not found.</span>";
	}
?>
Het is trouwens niet aangeraden om zo'n specifieke info te geven je kan beter een algemenere melding geven zoals "gegevens komen niet overeen". Gebruik Milo zijn script maar, lijkt me goed. En let ook op z'n tips. ;)
Ik kom er nu achter dat ik erg heb zitten klooien gisteravond, hopelijk gaat het nu beter:D

Reageren