【问题标题】:Paste variables to $_GET将变量粘贴到 $_GET
【发布时间】: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 给出相同的错误)。

请不要问我为什么要做这样的页面结构。不应更改。

解决办法是什么?

【问题讨论】:

  • 这样做要小心。查询字符串有长度限制,并且会静默截断任何太长的内容,这可能会发生在客户端和/或服务器端,而不会发出警告。

标签: php get request base64


【解决方案1】:

urlencodebase64_encode 之后呢?

【讨论】:

  • @Steve 一起做这件事毫无意义。
  • @Your Common Sense 您的讽刺评论没有意义。首先,iframe 用于实时预览,所以你的答案根本不是解决方案。二、我的代码很清楚,看到之前不要说不好。第三,要有耐心。
  • @Steve 我已经看到了。您将要对 base64_encoded 数据进行 urlencode。而你不在乎。够了。
  • @YourCommonSense :我是一名关心的 PHP 开发人员。您对 base64_encode 的看法是绝对正确的,它在这里毫无用处。但是,如果您对他的问题发生了什么有任何解释,我可以使用它。据我所知,base64_encode 应该够用了吧?
【解决方案2】:

根据您的情况,您还可以使用 Javascript 访问父框架。

您可以将数据存储在第一个窗口的 javascript 数组中,然后 iframe 子窗口可以通过父窗口调用它。*

Some more detailsfrom other questions.

【讨论】:

  • 无法访问 iframe 的内容
  • 由于浏览器安全政治,这是不可能的
  • 史蒂夫,我不建议访问子框架的内容。我建议从孩子那里访问父框架的内容。尝试使用&lt;script&gt;var something = {};&lt;/script&gt; 创建父框架并从子框架尝试&lt;script&gt;alert(parent.something);&lt;/script&gt;,您会看到它是一个未定义的[object Object]。因此,不要通过 $_GET 将变量传递给孩子,只需将变量存储在 &lt;script&gt;var myVars = &lt;?php json_encode($vars); ?&gt;;&lt;/script&gt; 中,然后在孩子 iFrame 中尝试 parent.myVars.whatever;
【解决方案3】:

您可以将$first,$second,$third 的内容写入first.txt,second.txt,third.txt,然后在您的 iframe 脚本中打开文本文件

【讨论】:

    【解决方案4】:

    您最初的方法是错误的。

    POST 变量不应该去任何地方。 POST 请求后服务器必须命令浏览器重新加载页面。 整个页面,不只是 iframe 在里面。

    重新加载后,您可以向用户显示任何 iframe。
    要将数据传递到那里,会话将是理想的解决方案。
    但是,某些解决方案取决于所有混乱的数据性质和总体目的。

    【讨论】:

      猜你喜欢
      • 2018-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多