Mailinglisten-Archive |
dhirtzbruch at hrnetzwerk.de wrote:
> Ich hab ein Problem mit 'ner Kunden-Website, beim Session-Login sollen die eingegebenen Daten mit den Daten in der MySQL-DB verglichen werden, dabei kommt immer folgende Fehlermeldung:
>
> Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in //neptun\domains\domains work\mtw\work\inc\inc_userdata.php on line 28
>
> Hier der Code (Fehlermeldungen gekürzt, deshalb fehlen zwei Zeilen):
>
> ---
> 11. $connect = mysql_pconnect($host,$username,$pass);
> 12. if (!$connect)
> 13. {
> 14. echo "Fehler!<br />".mysql_error();
> 16. }
> 17. else
> 18. {
> 19. $select = mysql_select_db($db_name,$connect);
> 20. if (!$select)
> 21. {
> 22. echo "Fehler!<br />".mysql_error();
> 24. }
> 25. else
> 26. {
> 27. $pw_get = mysql_query("SELECT pw_md5 FROM $tbl_1 WHERE user=$usr_e");
> 28. while($row=mysql_fetch_array($pw_get)) {$pw_md5=$row["pw_md5"];}
> 29. }
> 30. }
> ---
du musst auch nach dem mysql_query() auf Fehler überprüfen!
wenn '$usr_e' ein string ist dann fehlen da die ''
in jedem Fall fehlt die Validierung ( SQL-Injection )
http://faq.phpbar.de/index.php/Injection#SQL-Injection
<?php
$sql = "SELECT pw_md5 FROM $tbl_1 WHERE user=$usr_e";
if ( ! $connect = mysql_pconnect( $host, $username, $pass ) )
{
echo "Fehler!<br />".mysql_error();
}
elseif ( ! $select = mysql_select_db( $db_name, $connect ) )
{
echo "Fehler!<br />".mysql_error();
}
elseif ( ! $pw_get = mysql_query( $sql ) )
{
echo "Fehler!<br />".mysql_error();
}
else
{
$pw_md5 = mysql_fetch_result( $pw_get, 0 );
}
?>
--
Sebastian Mendel
www.sebastianmendel.de
www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet
php::bar PHP Wiki - Listenarchive