[PHP & SQL] Deze PHP code herkend ingevoerde gebruiker niet

Pagina: 1
Acties:

Onderwerpen


  • Oyster
  • Registratie: Januari 2003
  • Niet online
Jongens,

De hele dag ben ik al bezig met dit stukje code en ik kom er niet uit. De gebruiker + pass staan ingevoerd in de dB. Verbinding maken gaat oke. Helaas springt de code direct naar de "ongeldige gebruikersnaam" - else, zodra ik een gebruiker + pass invoer. Ik weet dat ik iets over het hoofd zie, maar ik weet niet wat. Jullie een idee?

code:
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
function password($username, $passgecodeerd) { 
    verbind(); // 

    $pass_uit_database = ""; // Zekerheid 

    // SQL instr: haalt het wachtwoord uit de database van de opgegeven username 
    $sql = "SELECT password FROM leden WHERE username LIKE '$username' ORDER BY id DESC"; 
    $resultaat = mysql_query($sql) or die(mysql_error()); 

    if ($row = mysql_fetch_object($resultaat)) { 
        // password md5en 
        $pass_uit_database = md5($row->password); 

        if($passgecodeerd == $pass_uit_database) {  // match de passwords uit de db en uit de session 
            return TRUE;   
        } 
        else { 
            echo "Geen geldige combinatie van gebruikersnaam en wachtwoord"; 
            return FALSE; 
        } 
    } 
    else { 
        echo "ongeldige gebruikersnaam"; 
        return FALSE; 
    } 
} 

?>

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Als ik het goed zie sla je je paswords plaintext op en gat je ze bij het ophalen hashen :? vreemde constructie.

[ Voor 26% gewijzigd door justmental op 02-09-2004 22:38 ]

Who is John Galt?


  • We Are Borg
  • Registratie: April 2000
  • Laatst online: 13:36

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
PHP:
1
$sql = "SELECT password FROM leden WHERE username LIKE '$username' ORDER BY id DESC";


Moet dit niet zijn:

PHP:
1
$sql = "SELECT password FROM leden WHERE username='".$_GET['username']."' ORDER BY id DESC";


of

PHP:
1
$sql = "SELECT password FROM leden WHERE username='".$_POST['username']"' ORDER BY id DESC";


:) ?

[ Voor 54% gewijzigd door We Are Borg op 02-09-2004 23:01 . Reden: " != ' ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

[hier stond wat doms]

[ Voor 83% gewijzigd door NMe op 02-09-2004 23:08 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Kuhlie
  • Registratie: December 2002
  • Niet online
We Are Borg schreef op 02 september 2004 @ 23:00:
PHP:
1
$sql = "SELECT password FROM leden WHERE username LIKE '$username' ORDER BY id DESC";


Moet dit niet zijn:

PHP:
1
$sql = "SELECT password FROM leden WHERE username='".$_GET['username']."' ORDER BY id DESC";


of

PHP:
1
$sql = "SELECT password FROM leden WHERE username='".$_POST['username']"' ORDER BY id DESC";


:) ?
Nee, want het gaat hier om een functie met o.a. als argument $username.


Verder: waarom debug je niet gewoon? ;) Print eens wat, bijv. de username die je in je functie binnenkrijgt. Voer die sql-query eens met de hand uit. Dat soort dingen.

[ Voor 19% gewijzigd door Kuhlie op 02-09-2004 23:04 . Reden: 'probeer de sql-query uit' toegevoegd ]


Verwijderd

Waarschijnlijk niet, $username wordt als argument meegegeven aan de functie.

  • We Are Borg
  • Registratie: April 2000
  • Laatst online: 13:36

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
Verwijderd schreef op 02 september 2004 @ 23:05:
[...]

Waarschijnlijk niet, $username wordt als argument meegegeven aan de functie.
Ik heb domweg over zijn eerste regel code gelezen. Mijn fout idd :)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Waarom gebruik je eigenlijk "WHERE username LIKE '$username'"? Je hebt geen %-teken erin staan, dus je kan net zo goed gewoon = gebruiken. Doet ie het dan niet wel gewoon?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • GlowMouse
  • Registratie: November 2002
  • Niet online
Als het goed is krijg je maar 1 rij terug, dus sorteren heeft geen zin. Ook kun je direct uit de database een MD5 waarde halen. Misschien is dit een betere query:

PHP:
1
$sql = "SELECT count(*) FROM leden WHERE username='$username' AND password=md5('$password')";

Verwijderd

echo $username en $passgecodeert eens, komen deze (correct) binnen?

Acties:
  • 0 Henk 'm!

  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

Ik neem aan dat je wachtwoorden gehashd in de DB staan? Dan hoef je $pass_uit_database niet meer te hashen.

Huur mij in als freelance SEO consultant!

Pagina: 1