【问题标题】:Get Input data from iframe with PHP使用 PHP 从 iframe 获取输入数据
【发布时间】:2011-08-11 11:43:40
【问题描述】:

我有一个带有表单的页面,在表单的中间我放置了一个带有 HTML 输入框的 iframe。如何使用 PHP $_POST 获取他们的内容?我试着像往常一样处理表单:

$iframe = $_POST["iframe"];

但它没有抓住它。

如何从 iframe 中获取输入值?

【问题讨论】:

    标签: php iframe


    【解决方案1】:

    iframe 中的内容是不同的网页。您需要从 iframe 中发布表单以便 php 访问它。

    如果您同时需要 iframe 和主页中的所有数据,您可能需要使用 javascript 来:

    1) 提交两个表单并处理拆分服务器端 2) 从 iframe 中读取值并作为父页面的一部分提交

    【讨论】:

    • 您使用 JavaScript 的第二个解决方案似乎适用。你知道我该怎么做吗?
    • 你的第二个将是我认为的解决方案。
    • @Ron 你在另一条评论中说 iframe 位于不同的域中。这使它变得更加复杂。这是一个 hack,但您可以在自己的页面上获取所有输入,然后模拟用户将其发送到第二个系统。但是,这很 hacky。
    【解决方案2】:

    这不起作用,除非 iframe 正在 POST 到您的 PHP 脚本。如果提交的表单在父页面中,浏览器不会将包含在 <iframe> 中的数据发送到您的脚本。

    一种解决方法是在提交表单时使用 JavaScript 从 iframe 中提取数据。然后将该数据动态附加到您的 POST 请求中。

    iframe 的 window 对象可以这样访问:

    var iframe = document.getElementById(iFrameName).contentWindow;
    

    请注意,这仅在 iframe 的来源与父页面位于同一域中时才有效(出于安全原因)。

    【讨论】:

    • 很遗憾,iframe 与父页面不同。这是一个完全不同的系统——这就是我使用 iframe 的原因。
    • 那恐怕你倒霉了:/。如果现代浏览器位于不同的域中,它们将阻止从父页面访问 iframe。这是为了防止 XSS 攻击。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多