Script voor aanpassen wachtwoord werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

George van Baasbank

George van Baasbank

04/06/2011 12:51:23
Quote Anchor link
Hallo allemaal,

Hoewel het erg mooi weer is, bij ons zo'n 25 graden, ben ik toch even bezig met het oplossen van een probleem met mijn php-script
Ik heb onderstaande script gemaakt met als bedoeling dat de gebruiker zelf zijn wachtwoord aan kan passen. De layout heb ik goed op orde maar de functie werkt niet.

Ik heb voor het deel van php hetzelfde script gebruikt als bij nhet inloggen (dat wel goed werkt) en daar een net wijzigscherm onder gemaakt in html.

Tevens heb ik de query omgebouwd naar een UPDATE van de tabel.

Wie kan en wil met dit prachtige weer mij helpen door aan te gveen waar ik de fout ben ingegaan?

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
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?php

/**
 * @author George van Baasbank
 * @copyright 2011
 */

session_start();

if (isset($_POST['wijzigen'])) {
    $emailadres     = $_POST['loginnaam'];                  // E-mailadres lezen uit formulierveld 'e'
    $paswoordoud    = $_POST['oud_wachtwoord'];                // Paswoord lezen uit formulierveld 'w'
    $paswoordnieuw  = $_POST['nw_wachtwoord'];
    
    $emailadres     = strip_tags($emailadres);              // HTML-tags en PHP-code verwijderen
    $paswoordoud    = strip_tags($paswoordoud);                // HTML-tags en PHP-code verwijderen
    $paswoordnieuw  = strip_tags($paswoordnieuw);
    
    $emailadres     = trim($emailadres);                    // Witruimte aan het begin en einde verwijderen
    $paswoordoud    = trim($paswoordoud);                    // Witruimte aan het begin en einde verwijderen
    $paswoordnieuw  = trim($paswoordnieuw);
    
    $melding        = "xx ";
    $nieuwe_pagina  = "keuzescherm mijnsjouk.php";
     
    if (strlen($emailadres) > 50) {
        $melding  = "Fout e-mail adres ";
      
    }
else {
        require_once('is_email.inc.php');      // Functie is_email() insluiten

        if (is_email($emailadres)) {           // E-mailadres controleren met de functie is_email()
            $actie = $_POST['actie'];          // Uit te voeren actie bepalen
            if ($actie === "actie" ) {

                // SQL-query definiëren
                if ($actie == "actie") {
                    $sql   = "UPDATE vrijwilligers SET wachtwoord = '$paswoordnieuw' WHERE email = '$loginnaam' AND wachtwoord= '$paswoordoud' ";

                // Constanten voor mysql_connect() insluiten:
                require_once('mysql_connect.inc.php');
              
                // Databaseverbinding openen:
                $verbinding = mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die("Verbinding mislukt: " . mysql_error());
            
                // Database vrijwilligers selecteren:
                mysql_select_db("md199125db167333") or die("Kon de database niet openen: " . mysql_error());
              
                // Query zonder resultaatset uitvoeren:
                //$result = mysql_query($sql) or die("Query mislukt: " . mysql_error());

                
                if(!$res = mysql_query($sql)) {
                   trigger_error(mysql_error().'<br />In query: '.$sql);
                }
elseif(mysql_affected_rows() == 0)
                {

                    echo 'Geen records gewijzigd. <br />Query: '.$sql;
                }
else {
                    echo 'Update was succesvol!';
                }

                                                              
                
        // Doorsturen naar beveiligde pagina
        //header("Location: raadplegen.php");

        include("$nieuwe_pagina");
                
        exit(); }
        }
        }
        }
        }

    
?>


<html>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Language" content="nl" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Wijzigen wachtwoord</title>
<style type="text/css"></style>
<link rel="stylesheet" type="text/css" href="../css/sjouk.css" />
</head>

<body style="margin-left: 0px; margin-top: 0px">

<table align="center" width="1000" border="0">
    <tr>
        <td align="center" class="header_overzicht"><?php echo "Wijzigen wachtwoord van " ;?></td>
    </tr>
</table>
<br /><br />

<table align="center" width="300px" cellspacing="0" border="0">

    <tr>
        <td align="center" colspan="2" width="300px" class="witoprood"><?php echo "Vul uw gegevens in" ;?></td>
    </tr>
    
    <form action="wachtwoord.php" method="POST" >
        <tr>
            <td align="left" width="125px" class="roodopwitlinks"><?php echo "Inlognaam" ;?></td>
            <td align="left" width="175px" class="roodopwitrechts"><input maxlength="150" size="20" type="text" accesskey="loginnaam" id="loginnaam" name="loginnaam" value="" /></td>
        </tr>
            <td align="left" width="125px" class="roodopwitlinks"><?php echo "Oude wachtwoord" ;?></td>
            <td align="left" width="175px" class="roodopwitrechts"><input maxlength="150" size="20" accesskey="oud_wachtwoord" type="password" id="oud_wachtwoord" name="oud_wachtwoord" value="" /></td>
        </tr>
        </tr>
            <td align="left" width="125px" class="roodopwitlinks"><?php echo "Nieuw wachtwoord" ;?></td>
            <td align="left" width="175px" class="roodopwitrechts"><input maxlength="150" size="20" accesskey="nw_wachtwoord" type="password" id="nw_wachtwoord" name="nw_wachtwoord" value="" /></td>
        </tr>
        <tr>
            <td align="center" width="149px" class="roodopwitlinks"><input type="submit" name="actie" value="Wijzigen" size="125px" /></td>
            <td align="center" width="149px" class="roodopwitrechts"><input type="reset" name="rest" value="Wissen" size="125px" /></td>
        </tr>
    </form>
    <tr>
        <td align="center" colspan="2" width="300px" class="witoprood"><?php echo "Sjouk.nl" ;?></td>
    </tr>
</table>

</body>

</html>
 
PHP hulp

PHP hulp

26/04/2024 21:20:32
 
Sven b

Sven b

04/06/2011 15:51:11
Quote Anchor link
Hoi,

Ik zal er maar meteen bij zeggen dat ik pas 3-4 weken programmeer en dat ik niet zeker weet of je wat aan deze hulp hebt, maar volgens mij is jou script wel omslachtig. Dit is niet erg, maar wel handiger om te weten hoe het eventueel wel kan.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$emailadres     = trim(strip_tags($_POST['loginnaam']));


Om eerlijk te zijn gebruik ik die trim en strip_tags niet, maar ik weet ook niet precies wat het verschil is met de code die ik gebruik.

Dit is hetgene dat ik gebruik:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mysql_real_escape_string(htmlentities($_POST['voornaam']))


Wat andere leden tegen mij ook zeggen is dat je altijd '' moet gebruiken wanneer je geen speciale code gebruikt. Dus bijv.

echo 'Dit is:' $naam;
en niet
echo "Dit is: $naam" of echo "Dit is Sven", want met een dubbele quote wordt er binnen de string naar een variabele gezocht. Bij een '' wordt dit niet gedaan en is dus sneller en netter.

Ik heb zelf nog niet een update functie proberen toe te voegen in mijn script. Dus heb er nog niet mee gewerkt en daar kan ik je dan ook niet echt bij helpen. Wat je kunt doen is achter elke if en else tekst zetten.

if (1){
echo 'Je zit nu in block 1 of if';
}
else {
echo 'Je bent door naar de Else block';
}

Dan kan je makkelijk zien tot hoever je code gaat en dan zie je ook waar het fout gaat. Je geeft nu namelijk niet aan waar je script de fout in gaat en wat precies het probleem is. Zodoende laat je het debuggen aan anderen over, terwijl ze op forums toch wel verwachten dat je met zelf iets komt aanzetten.

Stop er een error_report in dan kan je dat iig al zien en ik zou dat doen met overal te echoeen.

edit: Ik zie trouwens ook een sessie start maar wat doe je daar mee?

Succes!
Gewijzigd op 04/06/2011 16:12:49 door Sven b
 



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.