I'm having a little trouble making strings safe for a MySQL database.
Here's what I've got:
<?php
$connect = mysql_connect("HOST","USERNAME","PASSWORD");
if (!$connect)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("DATABASE", $connect);
function protect($value){
if (get_magic_quotes_gpc()){
$value1 = stripslashes($value);
$value2 = mysql_real_escape_string($value1);
} else {
$value2 = mysql_real_escape_string($value);
}
return $value2;
}
if(isset($_POST['submit'])){
$name = protect($_POST['username']);
$query = mysql_query("INSERT INTO `users` (`username`) VALUES ('$name')")or die(mysql_error());
if($query){
echo 'Done!';
}
} else { ?>
<form action="" method="post">
<input type="text" name="username" />
<input type="submit" name="submit" value="Submit" />
</form>
<?php }
?>
So I tried it out by entering: ''dsfdsfds"'dsfds'
The problem is, it doesn't escape the quotes, so it looks like this:

Please can someone tell me what I'm doing wrong?
Any help is appreciated.
Thanks,
Brad.
Edited by Bradlc, 05 July 2007 - 10:58 AM.
