hallo iedereen,

ik ben een klein login systeempje aant maken met een md5 paswoord, het paswoord wordt opgeslagen in md5 vorm maar het controleren lukt niet
Dit is de code, weet iemand men fout?

<?
session_start();
if(!empty($_POST)){
	include("connect.php");
	$query = "SELECT * FROM users
		WHERE username ='" . $_POST["username"] . "'
		AND paswoord = '" . md5($_POST["paswoord"]) . "'";
	
	$result = mysql_query($query) or die (mysql_error());
	
	if(mysql_num_rows($result) >0){
		$username = $_POST["username"];
		$paswoord = md5($_POST["paswoord"]);
		session_register("username");
		session_register("paswoord");
		mysql_fetch_row($result);
		header("Location: beveiligd.php");
		exit();
		
	}else{
		
		$tekst = "Uw username en uw paswoord komen niet overeen
					<a href=\"login.php\"> Probeer het opnieuw</a><br/>";
				die($tekst);
		}
	}else{
		header("Location : login.php");
	}
?>
Wat gaat er fout in het controleren?

Geeft hij altijd "Uw username en uw paswoord komen niet overeen
<a href=\"login.php\"> Probeer het opnieuw</a><br/>"? Of krijg je een MySQL error, of misschien helemaal niets?
hij geef "uw username en paswoord komen niet overeen".
Komen de formulier-velden wel overeen met die van login.php? En zet je je wachtwoord wel correct in je database? Misschien gebruik je twee keer md5() voor je het in de database zet...

Ik zie nl niet echt een fout in je code...
De velden komen overeen want ik had het ook eens geprobeerd zonder die md5 en dan ging het perfect!
Ik snap het ook niet echt goed.
Dus worden je wachtwoorden niet gecodeert+.+

Dan is er dus iets mis met je registratie-script+.+
Ik leg het waarschijnlijk verkeert uit (sorry daarvoor)
maar het registreren lukt en het opslaan in de db ook, tot daar alles perfect!
Maar als ik de controle wil doen of het wachtwoord correct is, dan gaat het mis!
Daar loopt het volledig fout:s
Dat komt waarschijnlijk doordat het wachtwoord verkeerd word opgeslagen in je database... Het kan lijken dat dit niet zo is, maar wat zoals jij het uitlegt begrijp ik dat het wel dit is...
<?php
$username = $_POST["username"];
$paswoord = md5($_POST["paswoord"]);
session_register("username");
session_register("paswoord");
?>

moet dat niet zijn:

<?php
$username = $_POST["username"];
$paswoord = md5($_POST["paswoord"]);
session_register($username);
session_register($paswoord);
?>

maar verder zie ik ook eigenlijk geen fout ik je script. Je weet zeker dat de wachtwoorden gecodeerd in je database staan?

en verder is dit een beetje onzinnig:

<?php
$tekst = "Uw username en uw paswoord komen niet overeen
<a href=\"login.php\"> Probeer het opnieuw</a><br/>";
die($tekst);
?>

doe dan gewoon meteen:

<?php
die('Uw username en uw password komen niet overeen
<a href="login.php"> Probeer het opnieuw</a><br/>');
?>

Maar ja, je kunt beter geen die gebruiken, maar gewoon even netjes een afhandeling maken, blijft je lay-out in tact en zo.
@ZeroDead, hoe kan ik dan maken dat het md5 paswoord gelijk is?
@PHP Newbie, ik heb het geprobeerd maar het lukte niet, ik zal een linkje zetten van de gegevens in de db zoals je zal zien staat er 1 gewoon wachtwoord en 2 gecodeerde wachtwoorden.
PHP Newbie schreef op 15.10.2006 00:07
<?php

<?php
$username = $_POST["username"];
$paswoord = md5($_POST["paswoord"]);
session_register($username);
session_register($paswoord);
?>


Dit was nu toch zo:

<?php
session_start();
$username = $_POST["username"];
$paswoord = md5($_POST["paswoord"]);
$_SESSION['username']=$username;
$_SESSION['paswoord']=$paswoord;
?>

Reageren