【发布时间】:2012-03-25 16:47:55
【问题描述】:
我有两页。第一个我们在其 url 中使用 $_POST 变量打开,第二个通过 iframe 在第一个内部打开。两个php文件,第二个是html操作。
我在 $_POST 中得到的变量通过 $_GET 传递给 iframe:
echo '<iframe src="index.php&first=' . $first . '&second=' . $second . '&third=' . $third . '&iframe=true"></iframe>';
$first, $second, $third 变量中有文本,其中包含一些 html 和换行符 (\n)。
问题是,当$_GET向iframe传递数据时,变量中的所有新行都消失了。
尝试传递base64_encode($first) 之类的变量,然后通过base64_decode() 对其进行解码。它工作有问题,文本的某些部分无法正确解码,可能是因为 iframe url 中的符号错误。
还尝试将所有变量放入单个数组中,对其进行序列化,然后通过 base64 进行编码 - 这样服务器会给出错误 500(它也会为 404 给出相同的错误)。
请不要问我为什么要做这样的页面结构。不应更改。
解决办法是什么?
【问题讨论】:
-
这样做要小心。查询字符串有长度限制,并且会静默截断任何太长的内容,这可能会发生在客户端和/或服务器端,而不会发出警告。