2012-02-22 107 views
0

我写了一个脚本,当你输入一个文本框时,它将打开一个隐藏的iframe到一个.php文件中,并在$ _GET中写入到文本框中。但是,例如,如果我在其中键入:'< 3',则会发生这种情况。

Image 1

PHP determins了$ _GET [s]是一片空白!用户不能把一个简单的符号,而不会得到这个错误。

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

Image 2

我应该怎么办?我应该用JavaScript还是PHP做些什么?请告诉我!

谢谢!

+0

您没有向我们显示任何代码。一般来说,在从PHP返回用户提交的数据之前,您应该在其上调用'htmlspecialchars'。 – Jon 2012-02-22 08:26:41

+0

你试过编码文本吗? – spicavigo 2012-02-22 08:26:48

回答

0

它看起来像您的iframe是由JavaScript生成的,所以所有包含PHP函数的答案都是无用的。数据甚至没有达到PHP,所以任何PHP函数希望如何帮助?

相反,请尝试使用urlencode from PHPJS,因为没有一个JS的函数能够真正处理所有情况,并且这使得您可以轻松使用PHP的urldecode来检索数据。

1

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

也是非常谨慎当允许用户输入到您的PHP脚本通过URL。确保你做了适当的检查/消毒,特别是涉及数据库操作时。

0

您需要将该字符编码为&lt;

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取其适用检查URL编码!