2013-01-04 4 views
-1

제목이 약간 잘못 될 수는 있지만 다른 방식으로 공식화하는 방법을 잘 모르겠습니다. 이 작품cURL - 양식을 잘 전송해도 다른 서버에서 변수를 가져올 수 없습니다.

<?php 

    if($_POST) { 
     $ch = curl_init("http://jecom.nl/bank/mods/jecom/jecom.php"); 
     curl_setopt($ch, CURLOPT_POST, true); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, 
        array('description' => $_POST['description'], 'amount' => $_POST['amount'], 'receiver'=> $_POST['receiver'])); 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); 
     // set to false if you want to see what redirect header was sent  
     // snippet 1 
     //execute post 
     $result = curl_exec($ch); 

     //close connection 
     curl_close($ch); 
    }       
?> 

, 나는 다른 서버에 jecom.php에 변수를 얻을 :

나는 다음과 같은 스크립트를 사용하여 변수를 교차 서버를 보낸다.

<?php 

require_once 'jecom_req.php'; //Basic requirements file 

$receiver = ($_POST["receiver"]); 
$amount = ($_POST["amount"]); 
$description = ($_POST["description"]); 
$sender = $_SESSION['username']; //their username. 
$balance = get_funds($sender, $server); 
?> 


<h1>Confirm payment</h1> 
<p>Please be carefull to confirm your payment to the other party. All transactions are logged to prevent fraud.</p> 

<form name="confirmation" method="post" action="jecom_send.php"> 
<table width="200" border="1"> 
    <tr> 
    <td>Your account name:</td> 
    <td><?php echo $sender; ?></td> 
    </tr> 
    <tr> 
    <td>Current Balance:</td> 
    <td><?php echo $balance; ?></td> 
    </tr> 
</table> 
<hr> 
<table width="200" border="1"> 
    <tr> 
    <td>Receiving party:</td> 
    <td><?php echo $receiver; ?></td> 
    </tr> 
    <tr> 
    <td>Description:</td> 
    <td><?php echo $description; ?></td> 
    </tr> 
    <tr> 
    <td>Amount:</td> 
    <td><?php echo $amount; ?></td> 
    </tr> 
</table> 
<hr> 
<table width="500" border="1"> 
    <tr> 
    <td align="center">I hereby confirm this information is correct and want to transfer the money.</td> 
    </tr> 
    <tr> 
    <td align="center"><input name="Submit" type="submit" value="Submit"></td> 
    </tr> 
</table> 
<input name="receiver" type="hidden" value="<?php echo $receiver; ?>" /> 
<input name="description" type="hidden" value="<?php echo $description; ?>" /> 
<input name="amount" type="hidden" value="<?php echo $amount; ?>" /> 
<input name="confirmation" type="hidden" value="http://jecom.nl/bank/mods/jecom/confirmation.php" /> 
</form> 

내가 (예상대로) 형태의 값을 얻고 있지만 $sender$balance, 내가 제출 누르면 또한 올바른로 보내지 않습니다 :

는 수신 페이지입니다 양식 서버에서 jecom_find.php을 찾을 것으로 예상합니다. 이제 이것은 놀랄 일이 아니며 후속 조치를 생각했지만 지금은 효과가 없습니다 ( openbase_dirsafe_mode은 여전히 ​​하나입니다). 이 문제를 해결할 수 있습니까?

+0

get_funds() 란 무엇입니까? –

답변

0

크로스 서버 인 경우 $ _SESSION 변수가 두 번째 서버에 설정되지 않습니다. 따라서 항상 null이 될 것이므로 호출 할 때 절대로 균형을 잡지 못할 것입니다.

$balance = get_funds(NULL , $server); 
+0

get_funds가 json 데이터를 사용하지 않는다는 것을 어떻게 알 수 있습니까? –

+0

수 있습니다. 그러나 변수가 설정되지 않아도 상관 없습니다. –

+0

다른 서버의 세션은 이미 설정되어 있어야합니다. –