MySQL 真实转义字符串
我试图使用addslashes 和mysql_real_escape_string 清理PHP 登录的输入。使用addslashes可以,但mysql_real_escape_string则不行。
这是一个允许我正确登录的示例:
$user = addslashes($_POST['user']);<br/>
$password = addslashes($_POST['password']);
而这不会:
$user = mysql_real_escape_string($_POST['user']);<br/>
$password = mysql_real_escape_string($_POST['password']);
另外,我的其他一些字段包含撇号。使用addslashes 时不会返回任何内容,因为数据库中的条目不会被转义。我想知道使用 mysql_real_escape_string 是否可以解决这个问题,但我不知道如何解决。
I was trying to sanitize inputs to my PHP login using addslashes and mysql_real_escape_string. Using addslashes
works, but mysql_real_escape_string
will not.
Here's an example of what allows me to log in correctly:
$user = addslashes($_POST['user']);<br/>
$password = addslashes($_POST['password']);
And this will not:
$user = mysql_real_escape_string($_POST['user']);<br/>
$password = mysql_real_escape_string($_POST['password']);
Also, some of my other fields contain apostrophes. Nothing is returned when using addslashes, since the entry in the DB isn't escaped. I was wondering if using mysql_real_escape_string
could fix this, but I don't know how.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
始终使用mysql_real_escape_string而不是addslashes。确保您在运行之前已连接到数据库,否则会出错。
Always use mysql_real_escape_string instead of addslashes. Make sure you are connected to the database before running it otherwise you will error.
mysql_real_escape_string() 不会转义 % 和 _。如果与 LIKE、GRANT 或 REVOKE 结合使用,这些在 MySQL 中就是通配符。
最重要的是不要相信用户输入。
因此,使用 htmlspecialchars 和 strip_tags 可以获得更好的安全性。
mysql_real_escape_string() does not escape % and _. These are wildcards in MySQL if combined with LIKE, GRANT, or REVOKE.
And Most important thing is don't trust user input.
So, use htmlspecialchars and strip_tags for better security.
有时用户可能会输入
'
,这个符号但是sql将其视为不同的方式并让它不允许插入到表中,我们不能限制用户,因此我们使用MySQL真正的转义字符串来避免这种情况错误注意:如果你实现这个,它应该连接到数据库,否则它将无法工作
Sometimes user may type
'
, this symbol but sql treat as an different way and let it not allow to insert in to tables,we cant restrict the user so that we use MySQL real escape string to avoid this kind of errorNote: if you implement this it should be connect to database else it wont work