2016-04-04 10 views
0

Ich habe zwei Server:Wie senden Daten zwischen zwei Servern mit CURL in Codeigniter?

1. Lizenzierung

2. Provisioning

Jetzt ein Client (Android/iOS-Gerät) sendet eine Anfrage-Server zu lizenzieren. Also gehen Sie wir einige Parameter von erhalten, die ich mich auf Server Provisioning, mit ROTATION wie folgt aus:

$skey = $this->input->get('site_id'); 
    $uid = $this->input->get('user_id'); 
    $url = "http://127.0.0.1/example.com?site_key=".$skey."&uid=".$uid; 

    $wget_cmd = "wget --no-check-certificate \"".$url."\" >/dev/null 2>/dev/null "; 
    //echo($wget_cmd); 
    //exec($wget_cmd); 
    // create a new cURL resource 
    $ch = curl_init(); 
    //curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_VERBOSE, TRUE); 
    curl_setopt($ch, CURLOPT_HTTPGET, TRUE); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 300); 
    // set URL and other appropriate options 
    curl_setopt($ch, CURLOPT_URL, $url); 
    //curl_setopt($ch, CURLOPT_HEADER, 0); 
    // grab URL and pass it to the browser 
    curl_exec($ch); 


    echo curl_error($ch); 


    // close cURL resource, and free up system resources 
    curl_close($ch); 

Nun ist die Provisioning-Server eine Datei provisioning.php genannt hat. Dort führe ich einige DB-Operationen basierend auf der Anfrage von Lizenzserver durch und erzeuge eine URL, die ich zurück zum Lizenzserver senden möchte.

On Provisioning generiere ich eine URL wie folgt basierend auf DB-Operationen:

$uri = site_url('/uploads/'.$user_ini['custom_ini_filename'].'.ini'); 

$ini_url = json_encode($uri,JSON_UNESCAPED_SLASHES); 

Hier habe ich diesen $ini_url zurück zum Lizenzserver zurückgeben möchten.

  1. Wie mache ich das?
  2. Zugriff auf diese $ini_url auf dem Lizenzserver?
+1

Wenn Sie nur URL anstelle Ausgangsdaten-Browser zurückkehren möchten, müssen Sie 'CURLOPT_RETURNTRANSFER' Option auf 1. [Docs] eingestellt verwenden (http://php.net/ Handbuch/de/function.curl-setopt.php). – Tpojka

+0

@Tpojka Wie kann man auf den $ ini_url auf dem Lizenzserver zugreifen? Ich möchte den Wert davon für weitere Operationen verwenden – Rajan

Antwort

1

Set CURLOPT_RETURNTRANSFER auf 1 gesetzt und einfach die Antwort von curl_exec ($ ch) zuweisen zu einer Variablen:

Lizenzserver

$skey = $this->input->get('site_id'); 
    $uid = $this->input->get('user_id'); 
    $url = "http://127.0.0.1/example.com?site_key=".$skey."&uid=".$uid; 

    $wget_cmd = "wget --no-check-certificate \"".$url."\" >/dev/null 2>/dev/null "; 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_VERBOSE, TRUE); 
    curl_setopt($ch, CURLOPT_HTTPGET, TRUE); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 300); 
    curl_setopt($ch, CURLOPT_URL, $url); 

    // The blow variable stores the response from provision server 
    $response_from_provision_server = curl_exec($ch); 

    echo curl_error($ch); 

    curl_close($ch); 

Sie werden auch die Inhalte Echo brauchen von $ ini_url vom Bereitstellungsserver, wobei dies die Ausgabe ist, die als Reaktion auf den Aufruf curl_exec() an den Lizenzserver zurückgesendet wird.

Provisioning Server

$uri = site_url('/uploads/'.$user_ini['custom_ini_filename'].'.ini'); 

$ini_url = json_encode($uri,JSON_UNESCAPED_SLASHES); 

// echo the $ini_url variable 
echo $ini_url; 
+0

Vielen Dank @Null Referenz – Rajan

+0

Ich möchte dies weitergeben: '$ skey = $ this-> input-> get ('site_id');' '$ uid = $ this-> input-> get ('user_id'); 'um den Server vom aktuellen Lizenzserver als zwei Variablen zu provisionieren, wie kann ich das tun? – Rajan

+0

Verwenden Sie json_encode und json_decode wie folgt: Lizenz 'echo json_encode (Array ('skey' => $ this-> Eingabe-> get ('site_id'), 'uid' => $ this-> Eingabe-> get ('user_id '))) 'Provision' $ response = json_decode (curl_exec ($ ch)) 'Antwort wird php std object. Greifen Sie auf einen solchen '$ response-> skey'' $ response-> uid' zu. Habe das nicht getestet, aber es sieht so aus, als wäre es richtig. – commanderZiltoid

Verwandte Themen