<?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>';

?>
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)
Goh Bedankt voor je helpende reactie.

Help me gewoon even met wat fout is en zet er geen domme reacties neer :S
Ik zeg het toch, er zit een fout in je structuur. En het is inderdaad niet overzichtelijk. Door dat je zo "lomp" programmeert is het gewoon bagger.

Even een klein opzetje:

<?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 */
}
?>
en nu moet dus de mysql_query er nog in en de controle of het huidige wachtwoord juist is?

Zou je dat er ook nog bij willen zetten? :$
Wel, het is het bekende rijtje
- 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.
dat zie ik ja.
die neemt de moeite.

jij zit anderen even de les te lezen
Hier heb ik dus niks aan.

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.




Luiwammes.

Reageren