允许某些字符通过$ _GET?

时间:2012-02-22 08:23:33

标签: php javascript

我写了一个脚本,当你输入一个文本框时,它会打开一个不可见的iframe到一个.php文件,其中$ _GET是他们写入文本框的内容。

但是,例如,如果我输入:'< 3',就会发生这种情况。

Image 1

PHP确定$ _GET [s]是空白的!用户无法输入简单的< 3符号而不会出现该错误。

另一个问题是引号,如果我写任何引号,它将结束整个SRC属性。

Image 2

我该怎么办?我应该用javascript,甚至PHP做点什么吗?请让我知道!

谢谢!

4 个答案:

答案 0 :(得分:1)

使用urlencode将输入的字符串编码为有效的字符串以供URL使用。

当允许用户通过URL输入PHP脚本时,也非常谨慎。确保进行适当的检查/清理,尤其是涉及数据库操作时。

答案 1 :(得分:0)

您需要将该字符编码为<

答案 2 :(得分:0)

关于双引号,你可以使用这个技巧。

attr='Your string can "contain double quotes"'

attr="Your string can 'contain double quotes'"

但在url中指定variable=values时,您不需要使用双引号,也可以直接指定值。

url="test.php?var1=123&var2=345"

如果要发送< 3个字符,您可以在javascript&中检查网址编码。 PHP以适用者为准!

答案 3 :(得分:0)

看起来你的iframe是由JavaScript生成的,所以包含PHP函数的所有答案都是无用的。数据甚至没有到达PHP,那么任何PHP函数如何能够提供帮助呢?

相反,请尝试使用urlencode from PHPJS,因为JS的所有函数都不能很好地处理所有情况,这使您可以轻松地使用PHP的urldecode来检索数据。