ww wijzigen script werkt niet ( Undefined variable )
Ik ben bezig met een wachtwoord wijzigen scriptje.
Helaas loop ik steeds tegen een paar fouten aan...
Ik hoop dat jullie mij kunnen helpen momenteel snap ik niet waarom ik de volgende foutmelding krijg:
Notice: Undefined variable: bekijk in C:\xampp\htdocs\Password-change.php on line 21
Voor de duidelijkheid:
In mysql heet wachtwoord: password.
En wanneer het invulveld wachtwoord en wachtwoord 2 overeenkomen moet hij dat updaten naar password in mysql, dat is de bedoeling.
hierbij het stukje script waarin volgens mij de fout zit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
if( $_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['button']) ){
if($_POST['wachtwoord'] == $_POST['wachtwoord2']){
if(md5($_POST['oudwachtwoord']) == $bekijk->password){
$wachtwoord = $_POST['wachtwoord'];
mysql_query("UPDATE members SET password='".md5($password)."' WHERE member_id='".$lid['member_id']."'") OR die(mysql_error());
echo "Gegevens opgeslagen. Ogenblik !";
}
else{
echo ("Je 'oude' wachtwoord komt NIET overeen met je 'huidige' wachtwoord");
}
}
else{
echo ("De nieuwe wachtwoorden komen NIET overeen!");
}
if(empty($_POST['wachtwoord'])){
echo "Geen wachtwoord opgegeven";
}
elseif(empty($_POST['wachtwoord2'])){
echo "Geen wachtwoord2 opgegeven";
}
}
?>
if( $_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['button']) ){
if($_POST['wachtwoord'] == $_POST['wachtwoord2']){
if(md5($_POST['oudwachtwoord']) == $bekijk->password){
$wachtwoord = $_POST['wachtwoord'];
mysql_query("UPDATE members SET password='".md5($password)."' WHERE member_id='".$lid['member_id']."'") OR die(mysql_error());
echo "Gegevens opgeslagen. Ogenblik !";
}
else{
echo ("Je 'oude' wachtwoord komt NIET overeen met je 'huidige' wachtwoord");
}
}
else{
echo ("De nieuwe wachtwoorden komen NIET overeen!");
}
if(empty($_POST['wachtwoord'])){
echo "Geen wachtwoord opgegeven";
}
elseif(empty($_POST['wachtwoord2'])){
echo "Geen wachtwoord2 opgegeven";
}
}
?>
Hopelijk dat jullie mij verder kunnen helpen, alvast bedankt. ( bij behoefte aan meer script kan ik dat altijd posten :) )
Melding spreekt volgens mij redelijk voor zich. Variabele $bekijk bestaat nog niet op het moment dat je hem wil aanspreken. Die moet je dus eerst declareren, waar heb je dat gedaan? Zo te zien is het een object, dus je moet dat object aanmaken.
Kan ik niet later in het script een veld definiëren als oudwachtwoord ?
Hij moet alleen controleren of het ingevulde oudewachtwoord gelijk is aan het huidige wachtwoord in mysql.
Gewijzigd op 23/01/2012 16:41:06 door Lars Hallow
Ook is die() not done als foutafhandeling, ga beter voor trigger_error of een zelfgemaakte foutafhandeling. Ook zou ik nog gaan voor de nieuwere versie van mysql_query (mysqli_query) als dit mogelijk is (PHP versie).
$bekijk->password bestaat niet.
Thanks, ga even verder knutselen :)
Ook zou ik wachtwoorden met een salt opslaan in een database en dus niet gewoon md5($wachtwoord). Maar zoiets als hash('whirlpool', $salt.$wachtwoord).