[PHP] Sessie of SQL foutje?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dit is een simpel login scriptje, dit is het stukje waar hij een paar vars een bepaalde waarde geeft als er wel of neit ingelogd is:
PHP:
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
<?
session_start();
$controle = FALSE;
function verbind() {
    $db_host = "localhost";
    $db_login = "*******";
    $db_pass = "*******";
    $db_database = "SzMembers";
    mysql_connect("$db_host", "$db_login", "$db_pass") or die("MySQL connectie mislukt.");
    mysql_select_db("$db_database")or die("Selecteren van database mislukt.");
}

function password($username, $passgecodeerd) {
    verbind();
    $pass_uit_database = "";
    $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)) {
        $pass_uit_database = md5($row->password);

        if($passgecodeerd == $pass_uit_database) {
            return TRUE;
        }
        else {
            return FALSE;
        }
    }
    else {
        return FALSE;
    }
}

$controle = password($username, $passgecodeerd);

if ($controle == TRUE) {
  $uitloggen = "<a href=\"body.php?action=uitloggen\">Uitloggen</a>";
  $menutitle3 = "Uiloggen";
  $menu3 = "[img]\"http://www.stealthzone.net/Art/01.gif\"[/img]<br><font face=\"Arial\" size=\"2\">Je bent al ingeloged, uitloggen kan hier: <a href=\"http://www.stealthzone.net?actie=uitloggen\">Uitloggen</a>.</font>";
  $endform = "0";
}
else {
  $inloggen = "<a href=\"http://www.stealthzone.net/PHP/login.php\">Inloggen</a>";
  $menutitle3 = "Inloggen";
  $menu3 = "<form method=\"post\" action=\"http://www.stealthzone.net/PHP/login.php\">Username:<input type=\"Text\" name=\"username\" size=\"18\" style=\"font-size: 10px; font-family: Arial; color: #000099; border: 1px solid #FFFFFF; background-color: #DFEFFF\"><br>Password:[img]\"http://www.stealthzone.net/Art/01.gif\"><input[/img]<br><input type=\"Submit\" value=\"Login\" name=\"Submit\" style=\"background-color: #000080; color: #FFFFFF; font-size: 10 px; font-family: Arial; border: 1 solid #FFFFFF\"> <input type=\"Reset\" value=\"Reset\" style=\"background-color: #000080; color: #FFFFFF; font-size: 10 px; font-family: Arial; border: 1 solid #FFFFFF\">";
  $endform = "1";
}
?>

Dit is het login gedeelte:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
session_start();
if ($HTTP_POST_VARS["username"] &amp;amp;&amp;amp; $HTTP_POST_VARS["password"]) {
    $passgecodeerd = md5($HTTP_POST_VARS["password"]);
    $username = $HTTP_POST_VARS["username"];
    session_register("username");
    session_register("passgecodeerd");
    header("Location: http://www.stealthzone.net/");
    exit;
}
?>

op de een of andere manier is dit altijd FALSE
PHP:
1
2
3
4
<?
    if ($row = mysql_fetch_object($resultaat)) {
        $pass_uit_database = md5($row->password);
?>

wat doe ik fout - staat md5 support standaard aan in php 4.0.6?

Acties:
  • 0 Henk 'm!

Verwijderd

1) Wat is het probleem? Krij je een foutmelding?
2) Misschien geeft PHPinfo() je die gegevens wel. Zie http://www.php.net/manual/en/function.phpinfo.php

Succes :)

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 10:54

Janoz

Moderator Devschuur®

!litemod

Wat gaat er eigenlijk fout (wordt er niet ingelogd, krijg je een error).. Soms wordt het duidelijker door er wat debug echo's tussen te zetten.. Weet je of ie er uit gaat bij 'wachtwoorden komen niet overeen' of 'er komt nix uit de db' oid...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op maandag 31 december 2001 16:32 schreef MrX het volgende:
1) Foutmelding?
2) PHP_info!
1) Maar login is onjuist al zijn username/password goed (heb ik omschreven in mijn post)
2) http://www.stealthzone.net/PHP/info.php

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op maandag 31 december 2001 16:33 schreef Janoz het volgende:
Wat gaat er eigenlijk fout (wordt er niet ingelogd, krijg je een error).. Soms wordt het duidelijker door er wat debug echo's tussen te zetten.. Weet je of ie er uit gaat bij 'wachtwoorden komen niet overeen' of 'er komt nix uit de db' oid...
dat zeg ik net:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
function password($username, $passgecodeerd) {
    verbind();
    $pass_uit_database = "";
    $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)) {
        $pass_uit_database = md5($row->password);

        if($passgecodeerd == $pass_uit_database) {
            return TRUE;
        }
        else {
            return FALSE;
        }
    }
    else {
        return FALSE;
        echo "Wat ik ook doe hij geeft hier altijd FALSE";
    }
}
?>

Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

print_r($row);

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op maandag 31 december 2001 16:37 schreef D2k het volgende:
print_r($row);
geeft geen resultaat: hij print nix

Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 02-09 11:02

D2k

Op maandag 31 december 2001 16:41 schreef DJ_PP het volgende:

[..]

geeft geen resultaat: hij print nix
tada :)

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

Verwijderd

Op maandag 31 december 2001 16:33 schreef DJ_PP het volgende:

[..]

1) Maar login is onjuist al zijn username/password goed (heb ik omschreven in mijn post)
Hmmm ... sorry, dacht dat je database password bedoelde ofzo. Door de code de vraag kwijtgeraakt.

Druk eens $pass_uit_database en $passgecodeerd af, om te kijken of er met 1 van beiden iets mis is.
Hmmmm vaag .... daar had ik iets over md5 verwacht als je dat aan of uit kunt zetten. :?

Acties:
  • 0 Henk 'm!

Verwijderd

Op maandag 31 december 2001 16:41 schreef DJ_PP het volgende:

[..]

geeft geen resultaat: hij print nix
Dan zou ik verwachten dat hij hier een foutmelding op zou geven:
PHP:
1
2
3
<?
$pass_uit_database = md5($row->password);
?>

Vaag ...

Acties:
  • 0 Henk 'm!

Verwijderd

neem me niet kwalijk, wat ik nu kan zeggen kan full of shit zijn, maar dat komt door de enorme brakheid van mezelf na teveel alcohol :)

terug to the topic:

hoe sla je die passwords op in je databaseje? cleartext of al geencodeerd? gebruik je bijv. bij het inputten van de passwords in je sql statement iets van "insert... password('mypass')" zodat hij dat al encodeert? en als het al gecodeerd is, zou dit dan niet het probleem kunnen veroorzaken?

maargoed, ik kan het ook fout hebben, dus indien dit bericht een load of crap is please ignore. :)

jews.t

p.s. nog een vraagje achteraf, waarom doe je "select password from leden where naam LIKE iets" ? waarom niet gewoon exact "naam='string'"?

Acties:
  • 0 Henk 'm!

Verwijderd

Overigens, je query:
code:
1
SELECT password FROM leden WHERE username LIKE '$username' ORDER BY id DESC

vind ik ietwat merkwaardig. Ik zou er
code:
1
SELECT password FROM leden WHERE username = '$username' ORDER BY id DESC

van maken eerlijk gezegd. Niet dat het de oorzaak van je probleem is denk ik, maar toch.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op maandag 31 december 2001 16:47 schreef jewst het volgende:
neem me niet kwalijk, wat ik nu kan zeggen kan full of shit zijn, maar dat komt door de enorme brakheid van mezelf na teveel alcohol :)

terug to the topic:

hoe sla je die passwords op in je databaseje? cleartext of al geencodeerd? gebruik je bijv. bij het inputten van de passwords in je sql statement iets van "insert... password('mypass')" zodat hij dat al encodeert? en als het al gecodeerd is, zou dit dan niet het probleem kunnen veroorzaken?

maargoed, ik kan het ook fout hebben, dus indien dit bericht een load of crap is please ignore. :)

jews.t
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
if ($HTTP_POST_VARS["username"] &amp;&amp; $HTTP_POST_VARS["password"]) {
    include ("library.php");
    verbind();
    $sql = "SELECT * FROM leden WHERE username LIKE '$username' ORDER BY id DESC";
    $resultaat = mysql_query($sql) or die(mysql_error());

    if ($row = mysql_fetch_object($resultaat)) {
        echo "sorry deze gebruikers naam bestaat al";
    }
    else {

        $sql = "INSERT INTO leden (username, password)
              VALUES ('$username', '$password')";
        mysql_query($sql) or die ("fout in query");
        echo "succesvol toegevoegd<br><br>";
    }
}
?>

Acties:
  • 0 Henk 'm!

Verwijderd

Op maandag 31 december 2001 16:51 schreef DJ_PP het volgende:

[..]

$sql = "INSERT INTO leden (username, password)
VALUES ('$username', '$password')";
?>[/php]
wat ik zowiezo nu niet meer begrijp is: als je een password cleartext opslaat in een database, waarom zou je dan nog met md5 lopen stoeien? :) string=string is toch hetzelfde als md5(string)=md5(string) ?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op maandag 31 december 2001 16:42 schreef D2k het volgende:

[..]

tada :)
ik snap het niet waar gaat het dan fout?

Acties:
  • 0 Henk 'm!

Verwijderd

ik weet niet of het gaat werken, maar wellicht de moeite waard:

verander de "naam LIKE 'iets'" in "naam='iets'" en reconstrueer je mysql_fetch_object naar een gewone mysql_fetch_array. Zou niks uit moeten maken maar toch.

Verder, is het misschien de moeite waard om met een do-while loopje alle resultaten van die query door te spitten, want wellicht komt er met die like op een of andere manier meerdere resultaten uit?

affijn, probeer eens of dat soelaas biedt. in de tussentijd ga ik even een oliebol kapen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
D2K???????????????????

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
D2K, wat bedoelde je met die post van die row?

Acties:
  • 0 Henk 'm!

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Weet je wel zeker dat je query goed is? Ik zou toch ff kijken met phpMyAdmin ofzo, het lijkt me dat er een fout inzit als je niet eens een object kan fetchen.....
En die functie van D2K is volgens mij om een object met variables op het scherm weeer te geven, maar dat zou je natuurlijk zelf ff kunnen nazoeken (hint)

Acties:
  • 0 Henk 'm!

  • razor-x
  • Registratie: Februari 2001
  • Laatst online: 30-07 08:33
als print_r($row) nix oplevert dan moet je nog es goed naar je query kijken ,
niet naar D2k roepen maar gewoon zelf probeeren is het beste :)
Pagina: 1