Foutje aan IF ??(want gaat naar else)
Ik wil er voor zorgen dat de var $wachtwoordoud gelijk is aan een row in de database, deze zijn beide md5 gecodeerd:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$wachtwoordoud = mysql_real_escape_string(md5($_POST['oudwachtwoord']));
if($wachtwoordoud = $rowklantInfo['wachtwoord'])
{
//uitvoering
}
else
{
echo 'Oud wachtwoord klopt niet';
}
?>
$wachtwoordoud = mysql_real_escape_string(md5($_POST['oudwachtwoord']));
if($wachtwoordoud = $rowklantInfo['wachtwoord'])
{
//uitvoering
}
else
{
echo 'Oud wachtwoord klopt niet';
}
?>
Hoewel ik in de input veld toch een wachtwoord heb ingevuld wat gelijk is aan die in de database.
Alle suggesties/tips zijn welkom ;)
Gewijzigd op 17/11/2010 15:15:56 door Koen -
==
Ozzie PHP op 17/11/2010 15:17:03:
2 = tekens
==
==
Ik neem aan dat je dit bedoelt bij het IF'je al je dat bedoeld dan heb ik dit al geprobeerd. Heeft geen nut gehad :(.
moet inderdaad dit worden ->
2 ik zou eens proberen if($wachtwoordoud == ($rowklantInfo['wachtwoord'])){
doe di t
}
else{
doe dat
}
?>
Een dubbele == is voor het controleren van iets.
Je fout zit zowiezo ergens anders want het aanmaken lukt niet om de een of andere reden. Anders kan het niet zo zijn dat je in de else terecht komt. In het geval met de enkele =.
lol tijdens ik mijn bericht typ word er al 2x gereageerd ;D topsnelheid hiero
toon even wat meer code. want ik begrijp ook niet waarom je mysql_real_escape_string gebruikt, dat moet alleen als je het in je query zet
Mark Coenen op 17/11/2010 15:25:33:
Een enkele = is voor het aanmaken van een var.
Een dubbele == is voor het controleren van iets.
Een dubbele == is voor het controleren van iets.
en waar is === dan goed voor eigenlijk?
Bij === wordt ook gecontroleerd op type 1 == '1' geeft true en 1 === '1' geeft false.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
require_once('configuration.php');
if(isset($_SESSION['user']));
{
include('boven.php');
include('functies.php');
$selectuserInfo = "SELECT
db_user.id,
db_user.wachtwoord
FROM
db_user
WHERE
db_user.id = '".$_SESSION['user']."'
Limit 1";
$resultuserInfo = mysql_query($selectuserInfo);
while($rowuserInfo = mysql_fetch_array($resultuserInfo))
{
echo '
<h1> Verander hier uw wachtwoord </h1>
<form name="edit_user" action="" method="post">
<div id="add_all">
<div id="add_text">
<div class="add_text">Oud Wachtwoord*</div>
<div class="add_text">Nieuw Wachtwoord*</div>
</div>
<div id="add_input">
<div class="add_input"><input type="password" name="oudwachtwoord" id="oudwachtwoord">
<div class="add_input"><input type="password" name="wachtwoord1" id="wachtwoord1">
<input type="password" name="wachtwoord2" id="wachtwoord2"></div>
<div class="add_input"><input type="submit" name="submit" id="submit" value="Opslaan" /></div>
</div>
</form>';
}
if(isset($_POST['submit']))
{
$wachtwoordoud = mysql_real_escape_string(md5($_POST['oudwachtwoord']));
if($wachtwoordoud == ($rowklantInfo['wachtwoord']))
{
if($_POST['wachtwoord1'] == $_POST['wachtwoord2'])
{
$wachtwoordedit = md5($_POST['wachtwoord2']);
$wachtwoord = mysql_real_escape_string($wachtwoordedit);
$updateuserWachtwoord = 'UPDATE db_user SET
wachtwoord = "'.$wachtwoord.'"
WHERE id = '.$_SESSION['user'].'';
mysql_query($updateuserWachtwoord) or die(mysql_error());
echo 'Wachtwoord succesvol aangepast';
}
else
{
echo 'Wachtwoorden komen niet overheen, wijzigen niet volbracht.';
}
}
else
{
echo 'oud wachtwoord niet bekend';
}
}
}
?>
require_once('configuration.php');
if(isset($_SESSION['user']));
{
include('boven.php');
include('functies.php');
$selectuserInfo = "SELECT
db_user.id,
db_user.wachtwoord
FROM
db_user
WHERE
db_user.id = '".$_SESSION['user']."'
Limit 1";
$resultuserInfo = mysql_query($selectuserInfo);
while($rowuserInfo = mysql_fetch_array($resultuserInfo))
{
echo '
<h1> Verander hier uw wachtwoord </h1>
<form name="edit_user" action="" method="post">
<div id="add_all">
<div id="add_text">
<div class="add_text">Oud Wachtwoord*</div>
<div class="add_text">Nieuw Wachtwoord*</div>
</div>
<div id="add_input">
<div class="add_input"><input type="password" name="oudwachtwoord" id="oudwachtwoord">
<div class="add_input"><input type="password" name="wachtwoord1" id="wachtwoord1">
<input type="password" name="wachtwoord2" id="wachtwoord2"></div>
<div class="add_input"><input type="submit" name="submit" id="submit" value="Opslaan" /></div>
</div>
</form>';
}
if(isset($_POST['submit']))
{
$wachtwoordoud = mysql_real_escape_string(md5($_POST['oudwachtwoord']));
if($wachtwoordoud == ($rowklantInfo['wachtwoord']))
{
if($_POST['wachtwoord1'] == $_POST['wachtwoord2'])
{
$wachtwoordedit = md5($_POST['wachtwoord2']);
$wachtwoord = mysql_real_escape_string($wachtwoordedit);
$updateuserWachtwoord = 'UPDATE db_user SET
wachtwoord = "'.$wachtwoord.'"
WHERE id = '.$_SESSION['user'].'';
mysql_query($updateuserWachtwoord) or die(mysql_error());
echo 'Wachtwoord succesvol aangepast';
}
else
{
echo 'Wachtwoorden komen niet overheen, wijzigen niet volbracht.';
}
}
else
{
echo 'oud wachtwoord niet bekend';
}
}
}
?>
Gewijzigd op 17/11/2010 15:58:39 door Koen -
Teun Hesseling op 17/11/2010 15:32:34:
en waar is === dan goed voor eigenlijk?
Mark Coenen op 17/11/2010 15:25:33:
Een enkele = is voor het aanmaken van een var.
Een dubbele == is voor het controleren van iets.
Een dubbele == is voor het controleren van iets.
en waar is === dan goed voor eigenlijk?
Hetzelfde als == maar als extra moeten ze van hetzelfde type zijn. Dus de 1 een string en de ander een integer geeft false ook al is de inhoud gelijk.
Toevoeging op 17/11/2010 15:37:48:
@Koen: Alle fouten zitten er nog steeds in.
= is GEEN vergelijking. Gebruik ==
Gewijzigd op 17/11/2010 15:35:31 door - SanThe -
Sorry ben ook moet 10 dingen tegelijk aan het doen. = is een toekenning daar ben ik ook al achter en == een vergelijking.
Gewijzigd op 17/11/2010 16:04:55 door gerhard l
Gerhard lubbers op 17/11/2010 15:50:32:
ik ben ook moet blij
?
perfect nederlands
Gerhard lubbers op 17/11/2010 15:50:32:
ik ben ook moet blij
Sorry deze syntax snap ik niet!
- Waarom werk je me een while als je maar 1 record uit de database wilt?
- Je formulier afhandeling is niet helemaal correct te noemen.
- Geen wachtwoorden ophalen, Gewoon de database laten controleren of het goed is.
- Controleren of een formulier is verzonden doen we met $_SERVER['REQUEST_METHOD'] == 'POST'
- die() is geen mooie fout afhandeling.
- Dat 'db_user.' hoeft er niet voor in je sql, Je bent niet met meerdere tabellen aan het werken.
Ik kan nog wel even doorgaan maar dan wordt het voornamelijk miereneuken.
Probeer voor jezelf eens wat commentaar in je code te zetten. Dit maakt het en voor jezelf en voor ons gemakkelijker om de werking van een script te achterhalen. Nu moet eerst de gehele lap doorgelezen worden om er zo achter te komen hoe het werkt. Dit maakt het ook gemakkelijker als je er over een tijdje weer eens iets aan moet veranderen. Nu heb je geluk dat dit nog geen 100 regels zijn maar stel je dit eens voor bij 1000+
Kijk eens op www.phptuts.nl en dan met name de sql beginners handleiding.