在两个不同的服务器上的两个不同页面之间来回传递变量

时间:2013-03-29 18:42:23

标签: php

我想在php中的两个服务器之间传递变量,就像A将发送给B然后B将对此做一些事情并将结果传递给A然后A将根据结果做一些事情并将结果传递给B和等等。 这是服务器A上的代码。它将电子邮件传递给B并将结果存储在$ result中。

$Email = $_POST['email'];
$postdata="&email=$Email";
$useragent= "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" ; 

$ch = curl_init("http://www.gguproject.hostoi.com/handler.php"); 
curl_setopt($ch, CURLOPT_USERAGENT, $useragent); //set our user agent 
curl_setopt($ch, CURLOPT_POST, 1); //set how many paramaters 
curl_setopt($ch, CURLOPT_POSTFIELDS,$postdata); //set data to post 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result= curl_exec ($ch); //execute and get the results 
curl_close ($ch);

这是服务器B上的代码。我无法将存储在$ row中的查询结果传回服务器A.


<?php 
require_once('database_connection.php') ;
ini_set ("display_errors", "1");  
error_reporting(E_ALL);  
$error = array();
$email = $_POST['email'];
if(!empty($email))
{
    $check;
    $query_check_credentials = "SELECT * FROM members WHERE (Email='$email') AND Activation IS NULL";
    $result_check_credentials = mysqli_query($dbc, $query_check_credentials);
        if(!$result_check_credentials)

        {
            print 3;
        }
        if (@mysqli_num_rows($result_check_credentials) == 1)//if Query is successfull 
        { // A match was made.




            $row= mysqli_fetch_array($result_check_credentials, MYSQLI_ASSOC);//Assign the result of this query to SESSION Global Variable
            print 2;
            $POST['name']=$row['Username'];

        }
        else
        { 
            print 1;

        }

}
?>

1 个答案:

答案 0 :(得分:0)

如果你想将信息从B传回A,你应该用B回显它。$result将它包含在一个字符串中。我建议使用JSON格式。

在B上,不是将1,2,3打印为状态,而是将其放在$status变量中,例如

$status = 3;

最后,请执行:

$result = array('status' => $status, 'data' => $row);
echo json_encode($result);

在A上,您可以这样做:

$result = curl_exec ($ch);
$data = json_decode($result);

然后,您可以使用$data['status']获取状态代码,然后使用$data['data']获取该行。