restricties bij inloggen werken niet

Status
Niet open voor verdere reacties.

Elizabeth F

Gebruiker
Lid geworden
31 jul 2007
Berichten
55
Hallo,

Ik heb de volgende code:
PHP:
<?php

/**
 * @author eliza
 * @copyright 2009
 */

//controleer hier of er een cookie gezet moet worden
if(isset($_POST["submit"])&&isset ($_POST["login"])&&$_POST["login"]!=""&&isset($_POST["passwd"])&&$_POST["passwd"]!="")
{
	setcookie("loginnaam",$_POST["login"],0,"/");
	setcookie("password",$_POST["passwd"],0,"/");
} 

?>

<html>
<body>

<?php
if (!isset($_POST["submit"]))
{
	ShowForm();
}
else
{
	HandleForm();	
}


function ShowForm()
{
	echo "<h1>Login</h1>";
	echo "<form action='".$_SERVER["PHP_SELF"]."' method='post'>";
	echo "Geef uw login naam:";
	echo "<input type='text' name='login'><br />";
	echo "Geef uw wachtwoord:";
	echo "<input type='password' name='passwd'><br />";
	echo "<input type='submit' name='submit' value='Login'>";
	echo "</form>";	
}

function HandleForm()
{
	if ($_POST['login']!="")
	{
		//vraag het correcte password op
		$correct_passwd=getPassword($_POST['login']);
		
		if (trim($_POST['passwd'])==trim($correct_passwd))
		{
			echo "<b>U bent ingelogd</b><br />";
			echo "KLik <a href=wk3_winkel.php>hier</a> om te gaan winkelen<br />";
			echo "Klik <a href=wk3_bedankt.php>hier</a> voor een bedankje<br />";
		
		}
		else
		{
			echo "<b> Het systeem kon u niet inloggen, probeer het nogmaals</b><br />";
			ShowForm();
		}
	
	}
	else
	{
		echo "<b>U moet wel een naam en een wachtwoord invullen</b><br />";
		ShowForm ();
	}
	
	
}

function getPassword($usernaam)
{
	$pass="";
	$users=file("wk4login.dat");//leest de hele file in in een array.
	for($i=0; $i<count($users);$i++)
	{
		$gegevens=explode(";",$users[$i]);
		//dus $gegevens[0]is nu de naam, gegevens[1] het wachtwoord
		
		//controleer of we de juiste naam hebben
		if ($usernaam==$gegevens[0]){$pass=$gegevens[1];}
	}
	return $pass;
}
?>


</body>
</html>
en het is de bedoeling dat je alleen kunt inloggen met de gegevens uit wk4login.dat.

In dit bestand staat het volgende:

jan;hallo
Bas;geheim
paul;appel

Als ik inlog met mijn eigen naam zonder password kom ik er ook in. Kan iemand helpen?

Bij voorbaat dank
 
Laatst bewerkt door een moderator:
PHP:
function getPassword($usernaam)
{
	$pass="";
	$users=file("wk4login.dat");//leest de hele file in in een array.
	for($i=0; $i<count($users);$i++)
	{
		$gegevens=explode(";",$users[$i]);
		//dus $gegevens[0]is nu de naam, gegevens[1] het wachtwoord
		
		//controleer of we de juiste naam hebben
		if ($usernaam==$gegevens[0]){$pass=$gegevens[1];}
	}
	return $pass;
}

Als de gebruikersnaam niet in het bestand voorkomt, blijf $pass leeg, dus kun je met een niet-bestaande gebruikersnaam inloggen met een leeg wachtwoord.
 
Daarnaast is het niet echt veilig om een .dat te gebruiken met inloggegevens daarin.

.dat is gewoon door de browser op te vragen waardoor iedereen dus de inhoud kan bekijken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan