我有两页。首先我们在其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网址中的符号不正确。
还尝试将所有变量抛出到单个数组中,对其进行序列化,然后通过base64进行编码 - 这样服务器就会产生错误500(它也为404提供了相同的错误)。
请不要问我为什么要这样的页面结构。它不应该改变。
解决方法是什么?
答案 0 :(得分:3)
urlencode
后的base64_encode
呢?
答案 1 :(得分:0)
根据您的情况,您还可以使用Javascript访问父框架。
您可以将数据存储在第一个窗口的javascript数组中,然后iframe子窗口可以通过父级调用它。*
答案 2 :(得分:-1)
您可以将$first,$second,$third
的内容写入first.txt,second.txt,third.txt
,然后打开iframe脚本中的文本文件
答案 3 :(得分:-1)
您最初的做法是错误的。
POST变量不应该去任何地方。 POST请求服务器必须命令浏览器重新加载页面。 整页,不仅仅是iframe。
重新加载后,您可以向用户显示任何iframe 要在那里传递数据,会话将是理想的解决方案 但是,某些解决方案取决于所有混乱的数据性质和总体目的。