Php 将变量粘贴到$\u GET
我有两页。第一个是我们在url中使用$\u POST变量打开的,第二个是通过iframe在First内部打开的。这两个php文件,第二个是用于html操作 我在$\u POST中获得的变量通过$\u GET传递给iframe:Php 将变量粘贴到$\u GET,php,get,request,base64,Php,Get,Request,Base64,我有两页。第一个是我们在url中使用$\u POST变量打开的,第二个是通过iframe在First内部打开的。这两个php文件,第二个是用于html操作 我在$\u POST中获得的变量通过$\u GET传递给iframe: echo '<iframe src="index.php&first=' . $first . '&second=' . $second . '&third=' . $third . '&iframe=true"></if
echo '<iframe src="index.php&first=' . $first . '&second=' . $second . '&third=' . $third . '&iframe=true"></iframe>';
echo';
$first、$second、$third
变量中包含文本以及一些html和新行(\n)
问题是,当数据通过$\u GET
传递到iframe时,变量中的所有新行都会消失
尝试传递变量,如base64\u encode($first)
,然后通过base64\u decode()
对其进行解码。它的工作有缺陷,文本的某些部分无法正确解码,可能是因为iframe url中的错误符号
还尝试将所有变量放入单个数组中,对其进行序列化,然后用base64进行编码-这样服务器会给出错误500(对于404也会给出相同的错误)
请不要问我为什么要做这样的页面结构。它不应该改变
解决方案是什么?您可以将
$first、$second、$third
的内容写入first.txt、second.txt、third.txt
,然后打开iframe脚本中的文本文件在base64\u encode
之后的urlencode>怎么样?您最初的方法是错误的
POST变量不应该出现在任何地方。
请求后,服务器必须命令浏览器重新加载页面。
整个页面,而不仅仅是其中的iframe
重新加载后,您可以向用户显示任何iFrame。
要在那里传递数据,会话将是理想的解决方案。
但是,某些解决方案取决于所有混乱的数据性质和总体目的。根据您的情况,您也可以使用Javascript访问父帧
您可以将数据存储在第一个窗口的javascript数组中,然后iframe子窗口可以通过父窗口调用它*
.@Steve一起做这件事毫无意义。@你的常识你的讽刺评论毫无意义。首先,iframe用于实时预览,因此您的答案根本不是解决方案。第二,我的代码很清楚,在看到之前不要说它不好。第三,耐心点。@Steve我已经看到了。您将对base64_编码的数据进行urlencode。你不在乎。这就够了。@YourCommonSense:我是一名PHP开发人员,谁在乎呢。关于base64_编码,你完全正确,它在这里毫无用处。但是,如果你对他的问题有任何解释,我可以用它。据我所知,base64_encode应该足够了?无法访问iframe的内容由于浏览器安全策略的原因,这是不可能的。当然,我并不建议访问子框架的内容。我建议从子帧访问父帧的内容。尝试使用var something={}创建父帧代码>和从孩子尝试警报(parent.something)代码>您将看到它是一个未定义的[object]。因此,不要通过$_GET将变量传递给子级,只需将变量存储在var myVars=
然后在子iFrame中尝试parent.myVars.whatever代码>执行此操作时要小心。查询字符串有一个长度限制,它会悄悄地截断任何过长的内容,这可能在没有警告的情况下发生在客户端和/或服务器端。