2012-04-14 5 views
2

ich versuche, das folgende zu tun, aber gibt einen Fehler, was wäre die richtige Art, die Aussage zu schreiben;MD5 Post-Daten in SQL-Abfrage

$sql="SELECT * FROM $tbl_name WHERE $db_usercol= '".$_POST['myusername']"' and $db_passcol= '"(md5($_POST['mypassword']))"'"; 
     $result=mysql_query($sql); 
+1

"." wird vermisst. – Sumant

+1

Was ist der Fehler? Auch dieser Code ist anfällig für SQL-Injection. –

+0

Ich habe schon die Post-Daten vor dem Code über –

Antwort

4

mysql_real_escape_string() ist eine gute Praxis.

$sql = "SELECT * 
     FROM $tbl_name 
     WHERE $db_usercol= '" . mysql_real_escape_string($_POST['myusername']) . 
      "' AND $db_passcol= '" . (md5($_POST['mypassword'])) . "'"; 

auch, vergessen Sie das Verkettungssymbol, ..

+0

geschärft Danke, ich lerne viel, ich hatte bereits die Post-Daten vor der SQL-Syntax entkommen –

+1

Escaping-String als '$ _POST ['myusername'] = mysql_real_escape_string ($ _ POST ['myusername']); 'ist nicht so eine gute Übung. ;) – hjpotter92

+0

Lol, lies mir was vor. Also ist es besser, es in der Abfrage zu scape? –