有人可以解释为什么这个简单的形式不起作用吗?
问题在于,当我使用mysql_real_escape_string()
时,结果什么都没有,当我删除它时效果很好,请你看看这里有什么不对吗?
这是完整的简单代码,
<?php
// Loop the post fields
$postFields = array('username', 'password', 'checkSubmission');
$postArray = array();
foreach($postFields as $postVal){
$postArray[$postVal] = mysql_real_escape_string($_POST[$postVal]);
}
print_r($postArray);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Signin</title>
<head>
</head>
<body><? echo $error;?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post" id="signinForm">
Username: <input type="text" name="username" value="" />
Password: <input type="password" name="password" value="" />
<input type="hidden" name="checkSubmission" value="1" />
<input type="submit" name="Submit" value="Signin" />
</form>
</body>
</html>
编辑:
当我使用print_r()
mysql_real_escape_string()
为空
Array ( [username] => [password] => [checkSubmission] => )
这是print_r()
没有mysql_real_escape_string()
Array ( [username] => thre[password] => werr[checkSubmission] => 1)
谢谢你的帮助
答案 0 :(得分:7)
mysql_real_escape_string()
需要有效的数据库连接。
从php手册:
在使用mysql_real_escape_string()之前需要MySQL连接 否则会生成E_WARNING级别的错误,FALSE为 回。如果未定义link_identifier,则为最后一个MySQL连接 使用。
http://php.net/manual/en/function.mysql-real-escape-string.php