【发布时间】:2012-02-20 10:31:06
【问题描述】:
我需要使用 cURL 将数据从一个 iframe 发送到另一个。我的代码是:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>New Web Project</title>
</head>
<body>
<form action="postback.php" method="POST">
<input type="hidden" name="variable" value="send"/>
<input type="submit" />
</form>
<iframe name="test" src="postback.php" width="200" height="200"></iframe>postback
<iframe name="test2" src="replay.php" width="200" height="200"></iframe>replay
</body>
</html>
和两个 iframe 代码: 回发 iframe:
<?php
if (isset($_POST["variable"])){
$var1 = $_POST["variable"];
$url = 'http://localhost/xss/replay.php';
$ch = curl_init($url);
$parameters = 'variable2='.$var1;
//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);
curl_exec($ch);
curl_close($ch);
}
else echo 'w8';
?>
重放 iframe:
<?php
if (isset($_POST["variable2"])){
$var1 = $_POST["variable2"];
echo $var1;
}
else echo 'w8';
?>
在这种情况下,我从第二个 iframe (replay.php) 得到响应到新页面,而不是打印变量 2 到第二个 iframe。我怎样才能改变它?我要补充一点,我不能使用 JavaScript/AJAX/jQuery 等。仅服务器端脚本
【问题讨论】:
-
如果我明白你在问什么,问题可能是你希望通过第一个 iframe 的 curl 调用影响第二个 iframe 的内容。但是在通话中,您使用的是该脚本的一个完全独立的实例,而不是显示的那个。
-
是的,这正是我想做的。我想在 iframe1 中触发按钮并在 iframe2 中查看结果(回声)。问题可能是,每个 iframe 都在不同的域上。
-
您将在 curl 调用中从第二个 url 获得输出。所以您不需要为它使用不同的 iframe。只需在第一个(并且只有 iframe)中显示其初始状态和调用后显示 curl 响应
-
@mishu 你看我的帖子了吗?我必须以某种方式编写数据以通过服务器端检测 iframe,因为 iframe 位于 不同的域中,因此 JS 不是一个好的选择。
-
你在哪里看到任何 JS 参考?我只是在谈论 curl 调用及其响应(使用 CURLOPT_RETURNTRANSFER)。如果您认为我的答案不是您所需要的,您可以忽略它。是的,我阅读了您的帖子以提供可能有所帮助的意见,并且我了解您正在使用与之前的问题不同的两台服务器,我建议您使用 jsonp 作为使用两台服务器的 ajax 的替代方案,但您认为这不是什么你需要