2012-02-20 129 views
0

我需要使用cURL從一個iframe發送數據到另一個。我的代碼是: php curl從一個iframe發送數據到另一個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> 

和兩個I幀代碼: 回傳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(重播響應.php)到新頁面,而不是打印變量2來隔離iframe。我該如何改變它?我會補充說,我不能使用JavaScript/AJAX/jQuery等。只有服務器端腳本

+1

如果我明白你問的問題可能是你期望從第一個iframe中的捲曲通話內容影響的事實第二個。但在通話中,您正在使用該腳本的完全獨立的實例,而不是它所顯示的實例。 – mishu 2012-02-20 10:45:48

+0

是的,它正是我想要做的。我想在iframe1中觸發按鈕並在iframe2中看到結果(echo)。問題可能是,每個iframe都在不同的域上。 – Krystian 2012-02-20 10:52:56

+0

你會在curl調用中得到第二個url的輸出。所以你不需要一個不同的iframe,只需要在第一個(也是唯一的iframe)中顯示其初始狀態並在調用之後顯示curl響應 – mishu 2012-02-20 11:04:09

回答

0

而不是做這個服務器端,你可能會更好使用javaScript將表單提交給iFrame,它可以通過將iframe src更改爲postback.php?variable = send和using $ _GET ['']參數在服務器端。

我不認爲你可以實現你在找什麼使用curl

+0

它可能是好的,但正如我之前寫的iframes在*不同的域*因此,因爲XSS我必須使用服務器端腳本。 – Krystian 2012-02-20 11:00:20

+1

@Krystian:我不認爲Hank正在談論ajax(這受到跨域策略的限制)。他說你可以提交表格(一個簡單的表單提交沒有這種限制) – mishu 2012-02-20 11:39:41

相關問題