login  Naam:   Wachtwoord: 
Registreer je!
 Forum

MySQL error

Offline Duikboot - 14/07/2006 23:07
Avatar van DuikbootGrafische gevorderde Heej,
Het is waarschijnlijk iets heel stoms, maar met mijn password wijzigingsscript krijg ik deze error:

Unknown column '6394da57c46bf9f02ce66d42c71dbd43' in 'field list'

Nu zit ik al een flinke tijd aan de query te sleutelen, maar die error blijft maar komen. Zal even een stukje code geven.

  1. <?
  2. if(isset($submit)){
  3. if(empty($_POST[wachtwoord1]) OR empty($_POST[wachtwoord2])){
  4. echo "Alle velden zijn verplicht. Klik <a href=\"wijzigpw.php\"><b>hier</b></a> om terug te gaan";
  5. }
  6. if($_POST['wachtwoord1'] != $_POST['wachtwoord2']){
  7. echo "De nieuwe wachtwoorden zijn niet aan elkaar gelijk. Klik <a href=\"wijzigpw.php\"><b>hier</b></a> om terug te gaan.";
  8. }
  9. if($_POST[wachtwoord1] == $_POST[wachtwoord2]){
  10. $wachtwoord_nieuw = md5($_POST['wachtwoord2']);
  11. //
  12. $query3="UPDATE cf_leden SET wachtwoord = $wachtwoord_nieuw WHERE id = '$_POST[lidnummer]'";
  13. $results = mysql_query($query3) OR die (mysql_error());
  14.  
  15. if($results){
  16. echo "Er is iets fout gegaan bij het wijzigen van je wachtwoord. Klik <a href=\"wijzigpw.php\"><b>hier</b></a> om terug te gaan.";
  17. }
  18. else{
  19. echo "Je wachtwoord is succesvol gewijzigd. Vanwege veiligheidsredenen ben je nu uitgelogd. Log in met je nieuwe wachtwoord.";
  20. }
  21. ?>

10 antwoorden

Gesponsorde links
Offline Rens - 14/07/2006 23:13 (laatste wijziging 14/07/2006 23:13)
Avatar van Rens Gouden medaille

Crew algemeen
Wat dacht je van quotes erom? 
  1. $query3="UPDATE cf_leden SET wachtwoord = '".$wachtwoord_nieuw."' WHERE id = $_POST[lidnummer]";


edit; En bij WHERE id... hoeft dat dan weer niet 
Bij een string wel, bij een getal niet.
Offline roelh - 14/07/2006 23:21
Avatar van roelh PHP gevorderde if(isset($submit)){

??doeje dat nog zo?

if(isset($_POST['submit'])){

zo misschien doen?
Offline Duikboot - 14/07/2006 23:25
Avatar van Duikboot Grafische gevorderde ahum  Wist ik wel Rensjuh 
Offline Rens - 14/07/2006 23:26 (laatste wijziging 14/07/2006 23:27)
Avatar van Rens Gouden medaille

Crew algemeen
Heb je code eens even aangepast, bleken nog wat meer fouten in te zitten, zoals 2 } vergeten, $_POST[blaat] i.p.v. $_POST['blaat']...

  1. <?PHP
  2. if($_SERVER['REQUEST_METHOD'] == "POST")
  3. {
  4. if(empty($_POST['wachtwoord1']) OR empty($_POST['wachtwoord2']))
  5. {
  6. echo 'Alle velden zijn verplicht. Klik <a href="wijzigpw.php"><b>hier</b></a> om terug te gaan';
  7. }
  8. if($_POST['wachtwoord1'] != $_POST['wachtwoord2'])
  9. {
  10. echo 'De nieuwe wachtwoorden zijn niet aan elkaar gelijk. Klik <a href="wijzigpw.php"><b>hier</b></a> om terug te gaan.';
  11. }
  12. if($_POST['wachtwoord1'] == $_POST['wachtwoord2'])
  13. {
  14. $wachtwoord_nieuw = md5($_POST['wachtwoord2']);
  15. $query3="UPDATE cf_leden SET wachtwoord = '".$wachtwoord_nieuw."' WHERE id = ".$_POST['lidnummer'];
  16. $results = mysql_query($query3) OR die (mysql_error());
  17.  
  18. if($results)
  19. {
  20. echo 'Er is iets fout gegaan bij het wijzigen van je wachtwoord. Klik <a href="wijzigpw.php"><b>hier</b></a> om terug te gaan.';
  21. } else
  22. {
  23. echo 'Je wachtwoord is succesvol gewijzigd. Vanwege veiligheidsredenen ben je nu uitgelogd. Log in met je nieuwe wachtwoord.';
  24. }
  25. }
  26. }
  27. ?>


En regel 15 is totaal niet veilig.
Stel dat het admin ID 1 is, en je gebruikt het volgende:
  1. <form method="post" action="http://www.site.nl/wijzigpw.php">
  2. Lid ID: <input type="text" name="lidnummer" value="1"><br />
  3. Wachtwoord: <input type="password" name="wachtwoord1" /><br />
  4. Wachtwoord 2: <input type="password" name="wachtwoord2" /><br />
  5. <input type="submit"></form>

Bij Lid ID staat een 1 (admin account's lid nummer).
Vul even 2 keer een wachtwoord in, en voila, ik ben admin van je site...
Offline Maarten - 14/07/2006 23:31
Avatar van Maarten Erelid Met de webdeveloper toolbaar hoef je die moeite niet eens te doen omdat je dan hidden form fields kan wijzigen 
Offline Duikboot - 15/07/2006 00:00
Avatar van Duikboot Grafische gevorderde Komt nog een aanpassinkje in, dat je eerst je oude wachtwoord moet invoeren, maar alleen snap ik dan niet hoe je die moet controleren? Aan de hand van de cookie die nu nog op de pc van de gebruiker staat, een wachtwoord in de database, die weer terugkoppelen aan een ID of hoe? Moet ik nog eens goed over nadenken.
Offline Ibrahim - 15/07/2006 14:34
Avatar van Ibrahim PHP expert je haalt wachtwoord uit de database m.b.v. ID in sessie/cookie, die moet iemand dus invullen in je form. die wordt dan gecontroleerd met de eerder opgehaalde wachtwoord, en dan pas wijzig je wachtwoord.

Ook een tip: zorg ervoor dat gebruiker zijn account weer moet activeren, als hij wachtwoord wijzigt.
Offline xSc - 15/07/2006 16:54
Avatar van xSc Onbekend Duikboot, ik moet zeggen dat dit een slecht script is.

- Of je bent niet echt bijgeschoold als het gaat om PHP
- Of je gebruikt een script uit 1999 o.i.d.

- Gebruik liever empty() niet om te controleren of een veld is ingevuld. Je kunt beter vergelijken of trim($var) == '' o.i.d.
- De mogelijkheid tot het wijzigen van het wachtwoord moet pas beschikbaar komen wanneer je ingelogd bent. Jouw manier is te gevaarlijk.

Offline Ibrahim - 15/07/2006 16:55
Avatar van Ibrahim PHP expert waarom is het erg om empty te gebruiken ?
Offline xSc - 15/07/2006 17:00
Avatar van xSc Onbekend empty() geeft niet altijd een zuiver resultaat (als het gaat om bijv. geposte checkboxen). Ik gebruik isSet(), trim() of normale vergelijkingen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.23s