hey allemaal,

ik ben de laatste tijd bezig om een simpel inlogsystem te maken voor mijn online portfolio voor school. hij doet het prima alleen er is een probleem als ik inlog wil ik onderscheid maken tussen de gewone gebruiker en de admin
kan iemand mij vertellen hoe dit moet?
hieronder zie je een deel van het script wat ik heb gebruikt:

if(!empty($_POST)){
$username=$_POST['username'];
$password=$_POST['password'];

$sql=mysql_query("SELECT * FROM login WHERE username='$username' LIMIT 1") or die(mysql_error());
if(mysql_num_rows($sql)<1){
echo("Niets gevonden");
}
else{
$row=mysql_fetch_assoc($sql);
if($row['password']==$password){
header("Location:ingelogd.php");
die;
}
else{
echo("wachtwoord klopt niet");
Je moet de waarde van een admin dus hogermaken

En veraderen in database d8 ik ..
Ben zelf vrij noob maar ok ..Verder ben ik er wel mee bezig
En waar haal jij dan de rol van de gebruiker op? Wellicht in de query, maar ik zie niet dat je iets met dat resultaat gaat doen.

Verder is het volkomen zinloos om in PHP te gaan controleren of een wachtwoord wel goed is, dat doe je gewoon in SQL. Dat is eenvoudiger en veiliger.

Ps. Zeg nooit en te nimmer 'wachtwoord klopt niet', dan geef je een hacker belangrijke informatie: het userid is goed, nu alleen het wachtwoord nog even kraken. 'niks gevonden' is veel beter, dit zegt 10x niks.
Paar vraagjes:
Wat is het nut van dit: $username=$_POST['username'];
Waarom check je niet én op username én op password tegelijk met je query?
Waarom staat je query open voor mysql-injection?
Waarom zit er geen enkele foutafhandeling in je script?
haha oke ik zou echt niet weten wat je precies bedoelt heb hier namelijk niet zo heel erg veel verstand van. het probleem is dat ik voor school dit moet maken zonder redelijke fatsoenlijke uitleg ik zal hieronder dit x het volledige script zetten. gaat het er trouwens niet om dat het niet veilig is.

<?php
$connect=mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("test",$connect) or die(mysql_error());

if(!empty($_POST)){
$username=$_POST['username'];
$password=$_POST['password'];

$sql=mysql_query("SELECT * FROM login WHERE username='$username' LIMIT 1") or die(mysql_error());
if(mysql_num_rows($sql)<1){
echo("Niets gevonden");
}
else{
$row=mysql_fetch_assoc($sql);
if($row['password']==$password){
header("Location:ingelogd.php"); die;
}
else{
echo("wachtwoord klopt niet");
}

}
}

?>
<html>
<head>
<title>Login</title>
</head>

<body>
<center>
<table width="695" border="0" cellspacing="0" cellpadding="3">
<tr>
<td width="283" rowspan="2"><img src="plaatjes/logo01.jpg" width="283" height="73"></td>
<td width="148" rowspan="2">&nbsp;</td>
<td width="244"> </tr>
<tr>
<td width="244" height="76"> <form method="post" action="test.php">
<input type="text" size="20" maxlength="20" name="username" />
Username <br />
<input type="text" size="20" maxlength="20" name="password" />
Password<br />
<input name="submit" type="submit" value="submit" />
</form></td>
</tr>
</body>

</html>
Zoals pgFrank al vroeg: Hoe bepaal je wie wat is?

PS. Als je school dit script een voldoende geeft zou ik bijna uit gaan kijken naar een betere school.
dat wil ik juist weten hoe laat ik het verschil zien tussen gebruiker en de admin?

PS: zo'n geweldige school is het ook niet grotendeels zelfstudie en tutorials opzoeken.
Maar staat er iets in de database waaraan je het kan zien?

Reageren