phpbar.de logo

Mailinglisten-Archive

[php] (mySQL) mysql_fetch_array-Problem

[php] (mySQL) mysql_fetch_array-Problem

Sebastian Mendel lists at sebastianmendel.de
Fre Mai 20 15:10:24 CEST 2005


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