Haalt query niet op

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 volgende »

Jerry php

Jerry php

04/11/2011 22:50:21
Quote Anchor link
Ik weet denk al wat het is, ik heb even gepuzzeld met een eerder script van mij, een oud login script, die niet was ingevoerd met md5, ik heb daar even md5 in gezet, en nu kan ik wederom niet inloggen. dus het ligt aan die md5.. maar ik snap het niet?
 
PHP hulp

PHP hulp

29/03/2024 08:53:08
 
Niels K

Niels K

04/11/2011 22:51:07
Quote Anchor link
Hoe worden de gebruikers de database in gezet? Ook met MD5? Of gewoon plain text?
 
Jerry php

Jerry php

04/11/2011 22:51:46
Quote Anchor link
de gebruikers worden er gewoon ingezet:

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
<?php
        
            if($_SERVER['REQUEST_METHOD'] == 'POST')
            {

                $username = $_POST['naam'];
                $wachtwoord = md5($_POST['wachtwoord']);
                
                include 'config.php';
                
                $query = "SELECT *
                          FROM gebruikers
                          WHERE gebruikersnaam='$username'
                          AND wachtwoord='$wachtwoord'"
;
                
                $result = mysql_query($query)
                          or die(mysql_error());
                
                if(mysql_num_rows($result))
                {

                        echo "Hij doet het!";
                }

                
                else
                {
                    echo "hij doet het niet!!";
                }
                
            }

?>

Zoals je ziet md5 ik het wachtwoord, en niet de gebruikersnaam, moet dit?
Gewijzigd op 04/11/2011 22:52:34 door Jerry php
 
Niels K

Niels K

04/11/2011 22:54:59
Quote Anchor link
Waar worden de gebruikers erin gezet? Ik zie niets... Nogmaals de vraag, hoe staan de gebruikers in de database? Zie gewoon het wachtwoord zoals je die gekozen hebt, of zie je het wachtwoord in allemaal 'rare' karakters, oftewel een MD5 string ?
 
Jerry php

Jerry php

04/11/2011 22:56:43
Quote Anchor link
Sorry dit was stukje login script.
hier stukje register script waar ze erin gezet worden.
En ja, de wachtwoorden staan in md5 string.


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
<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
    {

        $error = array();
        
            //Controleren of alles in is gevuld
            if(empty($_POST['naam']))
            {

                $error[] = "U heeft uw gebruikers naam niet ingevuld";
            }

            
            if(empty($_POST['wachtwoord']))
            {

                $error[] = "U heeft het eerste wachtwoord niet ingevuld";
            }

            
            if(empty($_POST['wachtwoord2']))
            {

                $error[] = "U heeft het tweede wachtwoord niet ingevuld";
            }

            
            //wachtwoorden vergelijken
                $username   =   $_POST['naam'];
                $password   =   md5($_POST['wachtwoord']);
                $password2  =   md5($_POST['wachtwoord2']);
            
            if($password !== $password2)
            {

               $error[] = "De wachtwoorden komen niet overeen";
            }

            
            //Controleren of email al bestaat
            include 'config.php';
            
            $query = "SELECT *
                      FROM gebruikers
                      WHERE gebruikersnaam='$username'"
;
            
            $result = mysql_query($query)
                    or die(mysql_error());
            
            if(mysql_num_rows($result) > 0)
            {

                $error[] = "Deze gebruikersnaam bestaat al.";
            }
                
                
                //Errors tellen en weergeven            
                if(empty($error))
                {

                    include 'config.php';

                    $query = "INSERT INTO gebruikers (gebruikersnaam, wachtwoord)
                               VALUES ('$username', '$password')"
;

                    $result = mysql_query($query, $connect)
                            or die(mysql_error());

                    echo "Bedankt, u bent succesvol aangemeld!";
                    
                    if(true)
                    {

                        header('refresh: 2; url=login.php');
                    }
                }


                else
                {
                    if(count($error) > 1)
                    {

                        echo "Er zijn een aantal dingen niet ingevuld: <br/>";

                        foreach($error as $errors)
                        {

                            echo "<ul><li>" . $errors . "</li></ul>";
                        }


                        echo "<a href=register.php>Probeer het nogmaals</a>";
                    }


                    else
                    {
                        foreach($error as $errors)
                        {

                            echo "<ul><li>" . $errors . "</li></ul>";
                        }


                        echo "<a href=register.php>Probeer het nogmaals</a>";
                    }
                }
    }


?>
Gewijzigd op 04/11/2011 22:57:11 door Niels K
 
Niels K

Niels K

04/11/2011 22:58:49
Quote Anchor link
Mm, ik zie zo gauw de fout niet.. Als je bij het inloggen het volgende doet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    var_dump(md5($password));
?>


Krijg je dan dezelfde hash die in de database staat?
Daarnaast, zorgen dat je variabelen buiten de quotes staan ;-)
 
Jerry php

Jerry php

04/11/2011 23:00:23
Quote Anchor link
Ik krijg een hele andere hash..
 
Niels K

Niels K

04/11/2011 23:02:20
Quote Anchor link
Kijk, dat is dus het probleem. Ik heb het gevoel dat je de gebruikers niet juist in de database zet. var_dump $password eens als je registreert, en kijk eens of daar de value uitkomt wat jij verwacht.

Controleer ook je formulier nog op veldnamen, spaties en dergelijke.
 
Jerry php

Jerry php

04/11/2011 23:02:24
Quote Anchor link
in de database staat:
3398a2d8124102aae406

en ik krijg:
d41d8cd98f00b204e9800998ecf8427e
 
Niels K

Niels K

04/11/2011 23:03:08
Quote Anchor link
Die is aanzienlijk korter.. Is je wachtwoord veld in de database wel groot genoeg?
 
Jerry php

Jerry php

04/11/2011 23:05:03
Quote Anchor link
Bij de register krijg ik ook een hele andere hash..
 
Niels K

Niels K

04/11/2011 23:05:31
Quote Anchor link
Lijkt die op de eerste of de tweede?
 
Jerry php

Jerry php

04/11/2011 23:08:10
Quote Anchor link
Ik heb het wachtwoord veld groter gemaakt, hij was inderdaad te kort, maar nu doet hij het nog steeeds niet

Toevoeging op 04/11/2011 23:08:26:

2e
 
- Ariën  -
Beheerder

- Ariën -

04/11/2011 23:10:27
Quote Anchor link
Hoeveel characters is je veld nu?
 
Jerry php

Jerry php

04/11/2011 23:11:29
Quote Anchor link
max. 255, dus kan niet verkeerd zijn
 
Niels K

Niels K

04/11/2011 23:12:46
Quote Anchor link
Dan gaat het toevoegen of ophalen uit de database verkeerd.

var_dump $_POST['wachtwoord'] eens bij beiden formulieren. En var_dump daarna de MD5 hash bij beide formulieren en kijk dan of ze overeen komen.
 
- Ariën  -
Beheerder

- Ariën -

04/11/2011 23:15:21
Quote Anchor link
Los van je probleem: Waarom gebruik je nog steeds 'dodelijke' foutafhandeling?
 
Niels K

Niels K

04/11/2011 23:16:04
Quote Anchor link
En de variabeles niet uit de quotes ;-)
 
Jerry php

Jerry php

04/11/2011 23:19:16
Quote Anchor link
Merkwaardig.. ik vardump de hash en het wachtwoord zonder md5, en dit is het resultaat:

Als wachtwoord heb ik mijn honds naam gekozen. haha

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
//inlog
string 'jeremy' (length=6)
string '6967cabefd763ac1a1a88e11159957db' (length=32)

//registreer
string 'jeremy' (length=6)
NULL
 
Niels K

Niels K

04/11/2011 23:19:59
Quote Anchor link
Met welke code doe je dat?
 

Pagina: « vorige 1 2 3 volgende »



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.