Wachtwoord Controle niet goed
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
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
<?php
if (isset($_POST['submit']))
{
if (empty($_POST['o_ww']))
{
echo'Vul je wachtwoord in';
}else{
$qQuery = $mysql->query("SELECT password FROM users WHERE id = '" . $_SESSION['id'] . "' AND password = '" . (sha1($_POST['o_ww'])) . "'");
if ($mysql->num_rows($qQuery) == 0)
{
$core->add_fout('Je wachtwoord klopt niet');
}
}
if (empty($_POST['ww']))
{
echo'Vul een nieuw wachtwoord in';
}else{
if ($_POST['ww'] != $_POST['ww2'])
{
echo'De wachtwoorden zijn niet gelijk';
}
}
mysql_query("UPDATE users SET password = '" . (sha1($_POST['ww'])) . "' WHERE id = '" . $_SESSION['id'] . "'");
echo '<strong>Je wachtwoord is veranderd!</strong>';
}
echo '<form action="" method="post">
<table>
<tr>
<td style="width: 250px;"><label>Wachtwoord:</label></td>
<td style="width: 250px;"><input class= "input" type="password" name="o_ww" /></td>
</tr>
<tr>
<td style="width: 250px;"><label>Nieuw wachtwoord:</label></td>
<td style="width: 250px;"><input class= "input" type="password" name="ww" /></td>
</tr>
<tr>
<td style="width: 250px;"><label>Nieuw wachtwoord<em>(herhaling)</em>:</label></td>
<td style="width: 250px;"><input class= "input" type="password" name="ww2" /></td>
</tr>
<tr>
<td style="width: 250px;"></td>
<td style="width: 250px;"><input class= "formbutton" type="submit" name="submit" value="Wijzigen!" /></td>
</tr>
</table>
</form>';
?>
if (isset($_POST['submit']))
{
if (empty($_POST['o_ww']))
{
echo'Vul je wachtwoord in';
}else{
$qQuery = $mysql->query("SELECT password FROM users WHERE id = '" . $_SESSION['id'] . "' AND password = '" . (sha1($_POST['o_ww'])) . "'");
if ($mysql->num_rows($qQuery) == 0)
{
$core->add_fout('Je wachtwoord klopt niet');
}
}
if (empty($_POST['ww']))
{
echo'Vul een nieuw wachtwoord in';
}else{
if ($_POST['ww'] != $_POST['ww2'])
{
echo'De wachtwoorden zijn niet gelijk';
}
}
mysql_query("UPDATE users SET password = '" . (sha1($_POST['ww'])) . "' WHERE id = '" . $_SESSION['id'] . "'");
echo '<strong>Je wachtwoord is veranderd!</strong>';
}
echo '<form action="" method="post">
<table>
<tr>
<td style="width: 250px;"><label>Wachtwoord:</label></td>
<td style="width: 250px;"><input class= "input" type="password" name="o_ww" /></td>
</tr>
<tr>
<td style="width: 250px;"><label>Nieuw wachtwoord:</label></td>
<td style="width: 250px;"><input class= "input" type="password" name="ww" /></td>
</tr>
<tr>
<td style="width: 250px;"><label>Nieuw wachtwoord<em>(herhaling)</em>:</label></td>
<td style="width: 250px;"><input class= "input" type="password" name="ww2" /></td>
</tr>
<tr>
<td style="width: 250px;"></td>
<td style="width: 250px;"><input class= "formbutton" type="submit" name="submit" value="Wijzigen!" /></td>
</tr>
</table>
</form>';
?>
Ik gebruik dit script op Wachtwoord aan te passen.
Als ik op verander ww klik dan komt er Vul een Wachtwoord in, vul een nieuw wachtwoord in en wachtwoord veranderd achter elkaar.
Hoe kan dat?
Zou iemand het even na willen kijken?
Mvg
Je if-else structuur is foutief. Je script is ook niet echt overzichtelijk, nogal veel enters. Voeg voor jezelf eens commentaar toe, dat gaat je doen inzien waar de fout zit. (hoop ik)
Omdat dit gewoon bagger-code is.
Help me gewoon even met wat fout is en zet er geen domme reacties neer :S
Even een klein opzetje:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
/* Controleren of formulier is verzonden */
if($_SERVER['REQUEST_METHOD']=='post') {
/* Controleer of huidig wachtwoord is opgegeven */
if(empty($_POST['huidig_wachtwoord'])) {
echo 'Je vulde geen wachtwoord in';
}else {
/* Huidig wachtwoord OK, controleer nieuw wachtwoord */
if(empty($_POST['nieuw_wachtwoord'])) {
echo 'Je vulde geen nieuw wachtwoord in.';
/* Check of de herhaling klopt, indien het niet ingevuld is, matched het ook niet */
}elseif($_POST['nieuw_wachtwoord']!=$_POST['nieuw_wachtwoord_herhaling']) {
echo 'De herhaling komt niet overeen';
}
}
}else {
/* Formulier */
}
?>
/* Controleren of formulier is verzonden */
if($_SERVER['REQUEST_METHOD']=='post') {
/* Controleer of huidig wachtwoord is opgegeven */
if(empty($_POST['huidig_wachtwoord'])) {
echo 'Je vulde geen wachtwoord in';
}else {
/* Huidig wachtwoord OK, controleer nieuw wachtwoord */
if(empty($_POST['nieuw_wachtwoord'])) {
echo 'Je vulde geen nieuw wachtwoord in.';
/* Check of de herhaling klopt, indien het niet ingevuld is, matched het ook niet */
}elseif($_POST['nieuw_wachtwoord']!=$_POST['nieuw_wachtwoord_herhaling']) {
echo 'De herhaling komt niet overeen';
}
}
}else {
/* Formulier */
}
?>
Zou je dat er ook nog bij willen zetten? :$
- een post controleer je niet door te kijken naar $_POST['submit'] of welk naampje er dan ook aan hebt toegekend
- de juiste controles en validaties ontbreken
- foutafhandeling zal hoogst waarschijnlijk ontbreken
- sql injectie zal dan ook wel mogelijk zijn
- een form layout doe je niet met table
- inline style, dat is toch echt om te janken
- onoverzichtelijk gecodeerd
- foutief gebruik van de functie empty()
- script logica is ver te zoeken
met andere woorden: je kan beter opnieuw beginnen dan een poging te wagen deze code op te kalafateren.
en Write Down heeft al aangegeven wat er fout is aan je script.
die neemt de moeite.
jij zit anderen even de les te lezen
Vraag het wel weer op een ander forum.
Marvin Radioo op 17/04/2011 20:59:05:
Hier heb ik dus niks aan.
Vraag het wel weer op een ander forum.
Vraag het wel weer op een ander forum.
Luiwammes.
Karl Karl op 17/04/2011 21:01:10:
Luiwammes.
Marvin Radioo op 17/04/2011 20:59:05:
Hier heb ik dus niks aan.
Vraag het wel weer op een ander forum.
Vraag het wel weer op een ander forum.
Luiwammes.
Waarschijnlijk beschikt hij niet over de kennis ..
Wesley PHP op 17/04/2011 21:02:36:
Waarschijnlijk beschikt hij niet over de kennis ..
Karl Karl op 17/04/2011 21:01:10:
Luiwammes.
Marvin Radioo op 17/04/2011 20:59:05:
Hier heb ik dus niks aan.
Vraag het wel weer op een ander forum.
Vraag het wel weer op een ander forum.
Luiwammes.
Waarschijnlijk beschikt hij niet over de kennis ..
Daarom zeg ik ook leer ;-)
Hoe zielig kan je zijn?
mysql_query('DROP TABLE users');
Dit controleert het wachtwoord automatisch. Al je problemen opgelost :-)
Toevoeging op 17/04/2011 21:40:50:
Voeg dit onderaan je script toe, dat lost alles op:
mysql_query('DROP TABLE users');
Dit controleert het wachtwoord automatisch. Al je problemen opgelost :-)
En ja zijn manier van scripten is bagger dat weten we allemaal ;)
Ik help hem toch, als zijn user table weg is, dan hoeft hij al helemaal geen moeite meer te doen. Dat is toch wat zijn doel is? //doel bereikt
Gewijzigd op 17/04/2011 23:06:49 door Write Down
Geen enkel respect meer?
Steeds meer zie ik hier dit soort reacties.
De sfeer en de mentaliteit van phphulp gaat steeds meer omlaag.
Echt heel erg jammer.
# controle huidige wachtwoord
# controle niewe wachtwoord
# ^-- en dan update je je database, ongeacht de uitkomst van de controles. Dus krijg je een error, word je database wel ge-update. Dat is je fout ;)
}
Ik krijg het gewoon op mijn heupen van zo'n tamzakken als de TS. Hij zit classes te gebruiken voor zijn queries en fouten, maar verder is hij niet in staat een eenvoudige if-else structuur correct te produceren. Het moge duidelijk zijn dat hij gewoon copy-paste werk uitvoert. In eerste instantie wou ik hem helpen, maar hoe hij reageer op Noppes, is gewoon lame.
Maar goed, toegegeven, mijn reactie is gemeen.
@TS
Die DROP TABLE niet toepassen
Gewijzigd op 18/04/2011 11:10:24 door Write Down