Re: [PHP-DB] Slashes or no slashes

[email protected] (Chris)
Newsgroups php.db
Message-ID <[email protected]>
> To be more specific. Is this correct?
>
> function confirmUP($username, $password){
> $username = mysql_real_escape_string($username);
>
> /* Verify that user is in database */
> $q = "SELECT password FROM TBL-U WHERE username = '$username'";

I normally do it in the query in case you use the variable somewhere 
else but here it's ok because you don't use $username elsewhere. Be 
careful though, it may bite you and it will be difficult to track down.

eg

$q = "select password from table where username='" . 
mysql_real_escape_string($username) . "'";

echo "You entered " . htmlspecialchars($username) . ", either it was 
wrong or the password was wrong. Try again.";

Doing the escape_string before the query means you end up with (basically)

htmlspecialchars(mysql_real_escape_string($username));

which will cause weird characters to show up in certain cases.

> $result = $this->query($q);
> if(!$result || (mysql_numrows($result) < 1)){
> return 1; //Indicates username failure
> }
>
> /* Retrieve password from result */
> $dbarray = mysql_fetch_array($result);
> $dbarray['password'] = htmlspecialchars($dbarray['password']);
> $password = mysql_real_escape_string(md5($password));
> $password = htmlspecialchars($password);

You're not displaying the password so don't htmlspecialchars it.

Just:

if ($dbarray['password'] == md5($password)) {
   return 0; // success!
}

Only specialchars it when you display it (like the echo above).

-- 
Postgresql & php tutorials
http://www.designmagick.com/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.