Ik wil graag het onderstaande script zo wijzigen zodat je voordat je het wachtwoord kunt wijzigen eerst het oude wachtwoord van de gebruiker moet invoeren.

Het wachtwoord is beveiligd met MD5, en staat in de tabel leden, het stukje wachtwoord.

De rest kun je vast wel lezen uit het script ;)..

Als je het verkeerde wachtwoord intikt dan wil ik graag dat de pagina edit-error.php tevoorschijn komt..

[edit.php]
<?php
$pagenaam = "Wachtwoord wijzigen";
include("../includes/header_page.php");
include("safe.php");
?>
<?

include ("config.php");

if ($_SERVER["QUERY_STRING"] != "aangemeld") {
if ($_POST['voegtoe']) {
if ($_POST['wachtwoord'] !="") {
if ($_POST['wachtwoord'] == $_POST['wachtwoord2']) {
$query = mysql_query("SELECT * FROM leden WHERE gebruikersnaam = '$_POST[gebruikersnaam]'");
$md5_pass = md5($_POST[wachtwoord]);
mysql_query("UPDATE leden SET wachtwoord = '$md5_pass' WHERE gebruikersnaam = '$_POST[gebruikersnaam]'");
header("Location: index.php?p=leden/edit_succes");


} else {
header("Location: index.php?p=leden/edit_error");
}
} else {
header("Location: index.php?p=leden/edit_error");
}
}

echo "<form method=\"post\" action=\"edit.php\">\n";
echo "<table>\n";
echo " <tr>\n";
echo " <td><small>Gebruikersnaam:</small></td>\n";
echo " <td><input type=\"hidden\" name=\"gebruikersnaam\" value=\"$gebruikersnaam\"><small><b>".$gebruikersnaam."</b></small></td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td><small>Nieuw wachtwoord:</small></td>\n";
echo " <td><input type=\"password\" name=\"wachtwoord\"></td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td><small>Herhaal nieuw wachtwoord:</small></td>\n";
echo " <td><input type=\"password\" name=\"wachtwoord2\"></td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td></td>\n";
echo " <td><input type=\"submit\" name=\"voegtoe\" value=\"Bewerken\">\n";
echo " </tr>\n";
echo "</table>\n";
echo "</form\n";

} else {
header("Location: index.php?p=leden/edit_succes");

}
?>
<?php
include("../includes/footer_page.php");
?>
<?
$sql = "SELECT * FROM `leden` WHERE `gebruikersnaam` = '". $_POST['gebruikersnaam'] ."' AND `wachtwoord` = '". md5($_POST['wachtwoord']) ."'";
if(!mysql_num_rows(mysql_query($sql)))
{
header('Location: edit-error.php');
}
else
{
//rest van je script
} ?>

Mag je er zelf tussen gaan zetten.. k heb geen zin om moeilijk te doen in deze lap text :)
<?

include ("config.php");

if ($_SERVER["QUERY_STRING"] != "aangemeld") {
if ($_POST['voegtoe']) {
if ($_POST['wachtwoord'] !="") {
if ($_POST['wachtwoord'] == $_POST['wachtwoord2']) {
$query = mysql_query("SELECT * FROM leden WHERE gebruikersnaam = '$_POST[gebruikersnaam]' AND `wachtwoord` = '". md5($_POST['wachtwoord3']) ."'");
$md5_pass = md5($_POST[wachtwoord]);
mysql_query("UPDATE leden SET wachtwoord = '$md5_pass' WHERE gebruikersnaam = '$_POST[gebruikersnaam]'");
header("Location: index.php?p=leden/edit_succes");


} else {
header("Location: index.php?p=leden/edit_error");
}
} else {
header("Location: index.php?p=leden/edit_error");
}
}

echo "<form method=\"post\" action=\"edit.php\">\n";
echo "<table>\n";
echo " <tr>\n";
echo " <td><small>Gebruikersnaam:</small></td>\n";
echo " <td><input type=\"hidden\" name=\"gebruikersnaam\" value=\"$gebruikersnaam\"><small><b>".$gebruikersnaam."</b></small></td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td><small>Oud wachtwoord:</small></td>\n";
echo " <td><input type=\"password\" name=\"wachtwoord3\"></td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td><small>Nieuw wachtwoord:</small></td>\n";
echo " <td><input type=\"password\" name=\"wachtwoord\"></td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td><small>Herhaal nieuw wachtwoord:</small></td>\n";
echo " <td><input type=\"password\" name=\"wachtwoord2\"></td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td></td>\n";
echo " <td><input type=\"submit\" name=\"voegtoe\" value=\"Bewerken\">\n";
echo " </tr>\n";
echo "</table>\n";
echo "</form\n";

} else {
header("Location: index.php?p=leden/edit_succes");

}
?>

Zoiets zou het dus moeten?..
Het is niet perse nodig, maar wel netter. Het grote stuk html onderaan kun je beter zonder echo's typen. Gewoon even zo:

<?
// script
?>
hier je html
<?
// script
?>

Is overzichtelijker en nog sneller ook :)

Reageren