Foutje aan IF ??(want gaat naar else)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Koen -

Koen -

17/11/2010 15:15:28
Quote Anchor link
Ik heb waarschijnlijk een fout aan deze if:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if($wachtwoordoud = $rowklantInfo['wachtwoord'])


Ik wil er voor zorgen dat de var $wachtwoordoud gelijk is aan een row in de database, deze zijn beide md5 gecodeerd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$wachtwoordoud
= mysql_real_escape_string(md5($_POST['oudwachtwoord']));
if($wachtwoordoud = $rowklantInfo['wachtwoord'])
{

 //uitvoering
}
else
{
 echo 'Oud wachtwoord klopt niet';
}

?>


Hoewel ik in de input veld toch een wachtwoord heb ingevuld wat gelijk is aan die in de database.

Alle suggesties/tips zijn welkom ;)
Gewijzigd op 17/11/2010 15:15:56 door Koen -
 
PHP hulp

PHP hulp

24/11/2024 08:04:46
 
Ozzie PHP

Ozzie PHP

17/11/2010 15:17:03
Quote Anchor link
2 = tekens

==
 
Koen -

Koen -

17/11/2010 15:19:19
Quote Anchor link
Ozzie PHP op 17/11/2010 15:17:03:
2 = tekens

==


Ik neem aan dat je dit bedoelt bij het IF'je al je dat bedoeld dan heb ik dit al geprobeerd. Heeft geen nut gehad :(.
 
- Ariën  -
Beheerder

- Ariën -

17/11/2010 15:23:18
Quote Anchor link
Waarom gebruik je mysql_real_escape_string() buiten je query?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$wachtwoordoud
= md5($_POST['oudwachtwoord']);
if($wachtwoordoud == $rowklantInfo['wachtwoord']) {
 //uitvoering
} else {
 echo 'Oud wachtwoord klopt niet';
}

?>
 
Jasper DS

Jasper DS

17/11/2010 15:24:36
Quote Anchor link
toon je query even en
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if($wachtwoordoud = $rowklantInfo['wachtwoord'])
?>


moet inderdaad dit worden ->

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if($wachtwoordoud == $rowklantInfo['wachtwoord'])
?>
 
Gerhard l

gerhard l

17/11/2010 15:25:01
Quote Anchor link
1 snap ik niet waarom je mysql real escape string gebruik omdat het alleen voor controle is?

2 ik zou eens proberen if($wachtwoordoud == ($rowklantInfo['wachtwoord'])){
doe di t
}
else{
doe dat
}
?>
 
- Mark -

- Mark -

17/11/2010 15:25:33
Quote Anchor link
Een enkele = is voor het aanmaken van een var.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $something = true; ?>


Een dubbele == is voor het controleren van iets.

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
<?php

    if($something == true){

        // Goed.

    }
    else{

        // Fout.

    }

?>


Je fout zit zowiezo ergens anders want het aanmaken lukt niet om de een of andere reden. Anders kan het niet zo zijn dat je in de else terecht komt. In het geval met de enkele =.
 
Gerhard l

gerhard l

17/11/2010 15:25:50
Quote Anchor link
lol tijdens ik mijn bericht typ word er al 2x gereageerd ;D topsnelheid hiero
 
Jasper DS

Jasper DS

17/11/2010 15:27:36
Quote Anchor link
toon even wat meer code. want ik begrijp ook niet waarom je mysql_real_escape_string gebruikt, dat moet alleen als je het in je query zet
 
Teun Hesseling

Teun Hesseling

17/11/2010 15:32:34
Quote Anchor link
Mark Coenen op 17/11/2010 15:25:33:
Een enkele = is voor het aanmaken van een var.

Een dubbele == is voor het controleren van iets.


en waar is === dan goed voor eigenlijk?
 
- Mark -

- Mark -

17/11/2010 15:33:45
Quote Anchor link
Bij === wordt ook gecontroleerd op type 1 == '1' geeft true en 1 === '1' geeft false.
 
Koen -

Koen -

17/11/2010 15:33:53
Quote Anchor link
Hele script
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
<?php


require_once('configuration.php');

if(isset($_SESSION['user']));
{

     include('boven.php');
     include('functies.php');
    

    
    $selectuserInfo = "SELECT
                                  db_user.id,
                                  db_user.wachtwoord
                                    FROM
                                  db_user
                                 WHERE
                                  db_user.id =  '"
.$_SESSION['user']."'
                                  Limit 1"
;
    $resultuserInfo = mysql_query($selectuserInfo);     

    while($rowuserInfo = mysql_fetch_array($resultuserInfo))
        {

        
            echo '
                    <h1> Verander hier uw wachtwoord </h1>
                    <form name="edit_user" action="" method="post">
                        <div id="add_all">
                            <div id="add_text">
                                <div class="add_text">Oud Wachtwoord*</div>
                                <div class="add_text">Nieuw Wachtwoord*</div>
                        </div>
                        <div id="add_input">
                                <div class="add_input"><input type="password" name="oudwachtwoord" id="oudwachtwoord">
                                <div class="add_input"><input type="password" name="wachtwoord1" id="wachtwoord1">
                                <input type="password" name="wachtwoord2" id="wachtwoord2"></div>
                                <div class="add_input"><input type="submit" name="submit" id="submit" value="Opslaan" /></div>
                        </div>
                    </form>'
;
        }

        
        if(isset($_POST['submit']))
        {
    
            
            $wachtwoordoud = mysql_real_escape_string(md5($_POST['oudwachtwoord']));

    if($wachtwoordoud == ($rowklantInfo['wachtwoord']))
        {
            
    
            
        
                if($_POST['wachtwoord1'] == $_POST['wachtwoord2'])
                    {

                        $wachtwoordedit = md5($_POST['wachtwoord2']);
                        
                        $wachtwoord = mysql_real_escape_string($wachtwoordedit);
                        
                        $updateuserWachtwoord = 'UPDATE db_user SET  
                            wachtwoord = "'
.$wachtwoord.'"
                            WHERE id = '
.$_SESSION['user'].'';
                            mysql_query($updateuserWachtwoord) or die(mysql_error());
                            
                            echo 'Wachtwoord succesvol aangepast';
                        
                    }

                    else
                        {
                            echo 'Wachtwoorden komen niet overheen, wijzigen niet volbracht.';
                        }
            
        
        }

        else
            {
                echo 'oud wachtwoord niet bekend';
            }
        }    
}
        

    
?>
Gewijzigd op 17/11/2010 15:58:39 door Koen -
 
- SanThe -

- SanThe -

17/11/2010 15:35:08
Quote Anchor link
Teun Hesseling op 17/11/2010 15:32:34:
Mark Coenen op 17/11/2010 15:25:33:
Een enkele = is voor het aanmaken van een var.

Een dubbele == is voor het controleren van iets.


en waar is === dan goed voor eigenlijk?


Hetzelfde als == maar als extra moeten ze van hetzelfde type zijn. Dus de 1 een string en de ander een integer geeft false ook al is de inhoud gelijk.

Toevoeging op 17/11/2010 15:37:48:

@Koen: Alle fouten zitten er nog steeds in.

= is GEEN vergelijking. Gebruik ==
Gewijzigd op 17/11/2010 15:35:31 door - SanThe -
 
Koen -

Koen -

17/11/2010 15:40:35
Quote Anchor link
Sorry ben ook moet 10 dingen tegelijk aan het doen. = is een toekenning daar ben ik ook al achter en == een vergelijking.
 
Gerhard l

gerhard l

17/11/2010 15:50:32
Quote Anchor link
laat maar
Gewijzigd op 17/11/2010 16:04:55 door gerhard l
 
- Ariën  -
Beheerder

- Ariën -

17/11/2010 15:54:06
Quote Anchor link
Gerhard lubbers op 17/11/2010 15:50:32:
ik ben ook moet blij

?
 
Jordi Kroon

Jordi Kroon

17/11/2010 15:55:25
Quote Anchor link
perfect nederlands
 
Koen -

Koen -

17/11/2010 15:56:01
Quote Anchor link
Gerhard lubbers op 17/11/2010 15:50:32:
ik ben ook moet blij


Sorry deze syntax snap ik niet!
 
- Mark -

- Mark -

17/11/2010 16:11:01
Quote Anchor link
Anyway er klopt helaas wel meer niet.

- Waarom werk je me een while als je maar 1 record uit de database wilt?
- Je formulier afhandeling is niet helemaal correct te noemen.
- Geen wachtwoorden ophalen, Gewoon de database laten controleren of het goed is.
- Controleren of een formulier is verzonden doen we met $_SERVER['REQUEST_METHOD'] == 'POST'
- die() is geen mooie fout afhandeling.
- Dat 'db_user.' hoeft er niet voor in je sql, Je bent niet met meerdere tabellen aan het werken.

Ik kan nog wel even doorgaan maar dan wordt het voornamelijk miereneuken.

Probeer voor jezelf eens wat commentaar in je code te zetten. Dit maakt het en voor jezelf en voor ons gemakkelijker om de werking van een script te achterhalen. Nu moet eerst de gehele lap doorgelezen worden om er zo achter te komen hoe het werkt. Dit maakt het ook gemakkelijker als je er over een tijdje weer eens iets aan moet veranderen. Nu heb je geluk dat dit nog geen 100 regels zijn maar stel je dit eens voor bij 1000+

Kijk eens op www.phptuts.nl en dan met name de sql beginners handleiding.
 



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.