Nieuw lid |
|
Hallo,
bij het opzetten van een formulier waarmee het mogelijk is een nieuwe gebruiker toe te voegen aan een database ben ik helaas tegen een probleem aangelopen. Ik zal de functie van het script en het probleem nader toelichten.
Er zijn drie verplichte velden die ingevuld moeten worden, namelijk:
- gebruikersnaam
- wachtwoord
- bevestiging wachtwoord
Zodra er verkeerde invoer verstuurd wordt, moet er in het invulformulier feedback komen te staan.
Wat het PHP-script dus moet gaan doen is controleren of de gebruikersnaam nog vrij is en controleren of het wachtwoord overeenkomt met de bevestiging.
Als dit niet het geval is, moeten er de volgende feedback komen te staan:
- De door u gekozen gebruikersnaam is niet meer beschikbaar.
en/of
- Dit wachtwoord komt niet overeen met de bevestiging.
Het probleem is nu dat de tweede feedbackregel, dus het wachtwoord, altijd weergegeven wordt, dus ook wanneer het wachtwoord gelijk is aan de bevestiging.
Ik ben flink aan het zoeken geweest naar de fout in het script, maar ik kan de fout echt niet vinden.
Weten jullie misschien wat er niet klopt aan het script?
Hieronder staat de code:
session_start();
function invoer_schoonmaken($tekst)
{
$tekst = strip_tags($tekst);
$tekst = htmlspecialchars($tekst);
return $tekst;
}
if ($_SESSION["ingelogd"] == "1" && empty($_POST["verzenden"]))
{
print("<h2>Een nieuwe gebruiker toevoegen</h2>");
print("<form action='toevoegen.php' method='post'>");
if ($_SESSION["fout_user"] == 1)
{
print("<i>De door u gekozen gebruikersnaam is niet meer beschikbaar.</i><br />");
unset($_SESSION["fout_user"]);
}
print("Gebruikersnaam: <input type='text' maxlength='15' name='username' />*<br />");
if ($_SESSION["fout_pw"] == 1)
{
print("<br /><i>Dit wachtwoord komt niet overeen met de bevestiging.</i><br />");
unset($_SESSION["fout_pw"]);
}
print("Wachtwoord: <input type='password' name='password' />*<br />");
print("Bevestig wachtwoord: <input type='password' name='password1' />*<br /><br />");
print("Velden met een * zijn vereist<br />");
print("<input name='verzenden' type='submit' value='Voeg toe' />");
print("</form>");
print("<br /><br />");
print("<a href='uitloggen.php'>Uitloggen</a>");
}
elseif ($_SESSION["ingelogd"] != "1")
{
print("<h1>403 Forbidden</h1><p>You do not have permission to access this document.</p>");
}
elseif(isset($_POST["verzenden"]))
{
$username = invoer_schoonmaken($_POST["username"]);
$password = invoer_schoonmaken($_POST["password"]);
$password1 = invoer_schoonmaken($POST["password1"]);
$mysql = mysql_connect("localhost","username","password") or die("Fout: Er is geen verbinding met de MySQL-server tot stand gebracht!");
mysql_select_db("naam_database",$mysql) or die("Fout: Het openen van de database is mislukt!");
$resultaat1 = mysql_query("SELECT * FROM beheer WHERE username = '$username'",$mysql) or die("De query op de database is mislukt!");
mysql_close($mysql) or die("Het verbreken van de verbinding met de MySQL-server is mislukt!");
if (mysql_num_rows ($resultaat1) == 1 && $password != $password1)
{
$_SESSION["fout_user"] = 1;
$_SESSION["fout_pw"] = 1;
}
elseif (mysql_num_rows ($resultaat1) == 1 && $password == $password1)
{
$_SESSION["fout_user"] = 1;
}
elseif (mysql_num_rows ($resultaat1) == 0 && $password == $password1)
{
$password = md5($password);
$mysql = mysql_connect("localhost","username","password") or die("Fout: Er is geen verbinding met de MySQL-server tot stand gebracht!");
mysql_select_db("naam_database",$mysql) or die("Fout: Het openen van de database is mislukt!");
mysql_query("INSERT INTO beheer (username,password) VALUES ('$username','$password')",$mysql) or die("De toevoegquery op de database is mislukt!");
$resultaat2 = mysql_query("SELECT username FROM beheer WHERE username = '$username' AND password = '$password' ",$mysql) or die("De query op de database is mislukt!");
mysql_close($mysql) or die("Het verbreken van de verbinding met de MySQL-server is mislukt!");
$gebruikersnaam = mysql_result($resultaat2,0,0);
if (!empty($gebruikersnaam))
{
print("Gebruiker <i>$gebruikersnaam</i> is succesvol toegevoegd aan de database!");
print("<br /><a href='toevoegen.php'>Nog een gebruiker toevoegen</a>");
print("<br /><br /><a href='uitloggen.php'>Uitloggen</a>");
}
else
{
print("Er is een fout opgetreden bij het toevoegen van de gebruiker, <br />waardoor de gebruiker niet is toegevoegd!<br/>");
print("<a href='toevoegen.php'>Klik hier om opnieuw te beginnen</a>");
print("<br /><br /><a href='uitloggen.php'>Uitloggen</a>");
}
}
else
{
$_SESSION["fout_pw"] = 1;
}
if (empty($username) || empty($password) || empty($password2) || $_SESSION["fout_user"] == 1 || $_SESSION["fout_pw"] == 1)
{
print("<script language='javascript'>location.href='toevoegen.php';</script>");
}
}
function invoer_schoonmaken($tekst) { return $tekst; } if ($_SESSION["ingelogd"] == "1" && empty($_POST["verzenden"])) { print("<h2>Een nieuwe gebruiker toevoegen</h2>"); print("<form action='toevoegen.php' method='post'>"); if ($_SESSION["fout_user"] == 1) { print("<i>De door u gekozen gebruikersnaam is niet meer beschikbaar.</i><br />"); unset($_SESSION["fout_user"]); } print("Gebruikersnaam: <input type='text' maxlength='15' name='username' />*<br />"); if ($_SESSION["fout_pw"] == 1) { print("<br /><i>Dit wachtwoord komt niet overeen met de bevestiging.</i><br />"); unset($_SESSION["fout_pw"]); } print("Wachtwoord: <input type='password' name='password' />*<br />"); print("Bevestig wachtwoord: <input type='password' name='password1' />*<br /><br />"); print("Velden met een * zijn vereist<br />"); print("<input name='verzenden' type='submit' value='Voeg toe' />"); print("<a href='uitloggen.php'>Uitloggen</a>"); } elseif ($_SESSION["ingelogd"] != "1") { print("<h1>403 Forbidden</h1><p>You do not have permission to access this document.</p>"); } elseif(isset($_POST["verzenden"])) { $username = invoer_schoonmaken($_POST["username"]); $password = invoer_schoonmaken($_POST["password"]); $password1 = invoer_schoonmaken($POST["password1"]); $mysql = mysql_connect("localhost","username","password") or die("Fout: Er is geen verbinding met de MySQL-server tot stand gebracht!"); mysql_select_db("naam_database",$mysql) or die("Fout: Het openen van de database is mislukt!"); $resultaat1 = mysql_query("SELECT * FROM beheer WHERE username = '$username'",$mysql) or die("De query op de database is mislukt!"); mysql_close($mysql) or die("Het verbreken van de verbinding met de MySQL-server is mislukt!"); { $_SESSION["fout_user"] = 1; $_SESSION["fout_pw"] = 1; } { $_SESSION["fout_user"] = 1; } { $password = md5($password); $mysql = mysql_connect("localhost","username","password") or die("Fout: Er is geen verbinding met de MySQL-server tot stand gebracht!"); mysql_select_db("naam_database",$mysql) or die("Fout: Het openen van de database is mislukt!"); mysql_query("INSERT INTO beheer (username,password) VALUES ('$username','$password')",$mysql) or die("De toevoegquery op de database is mislukt!"); $resultaat2 = mysql_query("SELECT username FROM beheer WHERE username = '$username' AND password = '$password' ",$mysql) or die("De query op de database is mislukt!"); mysql_close($mysql) or die("Het verbreken van de verbinding met de MySQL-server is mislukt!"); if (!empty($gebruikersnaam)) { print("Gebruiker <i>$gebruikersnaam</i> is succesvol toegevoegd aan de database!"); print("<br /><a href='toevoegen.php'>Nog een gebruiker toevoegen</a>"); print("<br /><br /><a href='uitloggen.php'>Uitloggen</a>"); } else { print("Er is een fout opgetreden bij het toevoegen van de gebruiker, <br />waardoor de gebruiker niet is toegevoegd!<br/>"); print("<a href='toevoegen.php'>Klik hier om opnieuw te beginnen</a>"); print("<br /><br /><a href='uitloggen.php'>Uitloggen</a>"); } } else { $_SESSION["fout_pw"] = 1; } if (empty($username) || empty($password) || empty($password2) || $_SESSION["fout_user"] == 1 || $_SESSION["fout_pw"] == 1) { print("<script language='javascript'>location.href='toevoegen.php';</script>"); } }
Alvast vriendelijk bedankt,
Ruben
|