问题描述
|
我有一个HTML表单的文本框,用户将在其中输入一些信息并按Submit。此数据将被提交到同一页面,因此我想在文本框中显示最后提交的值。
我正在尝试这个:
<input name=\"srq\" type=\"text\" id=\"search_box\" <?php if($_GET[\"srq\"]) echo \'value=\"\'.$_GET[\"srq\"].\'\"\'; ?> />
但这会将\“ \'hello \'\”变成\“ \\\'hello \\\\\\”。什么是正确的方法?
解决方法
一种解决方案是在php设置中关闭magic_quotes_gpc,另一种解决方案是在$ _GET [\“ srq \”]中使用反斜杠
<?php if($_GET[\"srq\"]) echo \'value=\"\'.stripslashes($_GET[\"srq\"]).\'\"\'; ?>
我想您知道那是多么不安全吗?
,echo \'value=\"\' . htmlspecialchars($_GET[\'srq\']) . \'\"\'
并且不要自动添加斜杠。如果您需要在数据库中插入某些内容,请使用dbscape功能(例如,对于MySQL为ѭ3)来对其进行转义,而不是依靠斜杠。
,在输出值时使用stripslashes函数。
,你有魔术引号=开
使用get_magic_quotes_gpc检查它们是否打开,然后使用反斜杠删除引号