Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将变量粘贴到$\u GET_Php_Get_Request_Base64 - Fatal编程技术网

Php 将变量粘贴到$\u GET

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

我有两页。第一个是我们在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"></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执行此操作时要小心。查询字符串有一个长度限制,它会悄悄地截断任何过长的内容,这可能在没有警告的情况下发生在客户端和/或服务器端。