[PHP/MySQL] Wachtwoord wijzigen script werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

DJ Lars

DJ Lars

27/02/2008 10:19:00
Quote Anchor link
Ik zal er wel gigantisch overheen kijken maar ik kan de fout niet vinden in mijn script. Ik wil een script maken waarmee ik een wachtwoord in de database aan kan passen.

De tabel waar het om gaat ziet er zo uit:
id
username
password

Wanneer ik het script oproep dan krijg ik een volledig witte pagina, ik snap niet wat er mis gaat.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?
ini_set ('display_errors', 1);
error_reporting (E_ALL);

mysql_connect ('***','***','***') or die ('Kan niet verbinden met database!');
mysql_select_db ('***') or die ('Kan database niet vinden');

if(isset($_POST['username'])) {
    $username = $_POST['username'];
    $wachtwoordoud = sha1($_POST['wachtwoordoud']);
    $wachtwoordnieuw = sha1($_POST['wachtwoordnieuw']);
    $wachtwoordnieuw2 = sha1($_POST['wachtwoordnieuw2']);
    $fout = '';
    
if(empty($wachtwoordoud) OR empty($wachtwoordnieuw) OR empty($wachtwoordnieuw2)) {
       $fout = 'Je bent een veld vergeten in te vullen';
      }

    
elseif($wachtwoordnieuw != $wachtwoordnieuw2) {
       $fout = 'De nieuwe wachtwoorden komen niet overheen';
      }
    
    
       $query1 = "SELECT * FROM gebruikers WHERE username='".$_POST['username']."'";
       $result1 = mysql_query($query1) or die(mysql_error());
       $row = mysql_fetch_assoc ($result1);
    
elseif($wachtwoordoud != $row['wachtwoord'] {
       $fout = 'Je hebt het verkeerde wachtwoord ingevoerd';
       }


elseif(!empty($fout)) {
       echo $fout;
      }


elseif(empty($fout)) {
       $query2 = "UPDATE gebruikers SET wachtwoord='".$wachtwoordnieuw."' WHERE naam='".$_POST['username']."'";
       mysql_query($query2);
    
if(!$query2)die("Fout met het veranderen van het wachtwoord");
    echo 'Je hebt je wachtwoord succesvol veranderd';
    }
 }


else {
    echo '<form method="post" action="?">';
    echo 'Gebruikersnaam<br><input type="text" name="username"><br>';
    echo 'Oude wachtwoord<br><input type="password" name="wachtwoordoud"><br>';
    echo 'Nieuwe wachtwoord<br><input type="password" name="wachtwoordnieuw"><br>';
    echo 'Nieuwe wachtwoord controle<br><input type="password" name="wachtwoordnieuw2"><br>';
    echo '<input type="submit" name="submit" value="Veranderen"><br>';
    echo '</form>';
    }

?>


Ik hoop dat iemand me kan helpen, alvast bedankt!
 
PHP hulp

PHP hulp

28/01/2021 09:12:45
 
Jelle Posthuma

Jelle Posthuma

27/02/2008 10:45:00
Quote Anchor link
Geen foutafhandeling met betrekking tot de SQL commando's.
Ga daar eens naar kijken.
Zou al een hoop fouten naar het licht kunnen brengen.
 
Jan Koehoorn

Jan Koehoorn

27/02/2008 10:49:00
Quote Anchor link
De grootste fout zit hier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
    elseif(empty($fout)) {
       $query2 = "UPDATE gebruikers SET wachtwoord='".$wachtwoordnieuw."' WHERE naam='".$_POST['username']."'";
       mysql_query($query2);
    
if(!$query2)die("Fout met het veranderen van het wachtwoord");
    echo 'Je hebt je wachtwoord succesvol veranderd';
    }
 }

?>

Dat zou zoiets moeten worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
    elseif(empty($fout)) {
        $query2 = "
            UPDATE gebruikers
            SET wachtwoord = '"
. $wachtwoordnieuw . "'
            WHERE naam = '"
. mysql_real_escape_string ($_POST['username']) . "'"
            ;
    if ($res = mysql_query($query2)) {
        if (mysql_affected_rows () == 1) {    
            echo 'Je hebt je wachtwoord succesvol veranderd';
        }
    }

?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.