Frage zu curl

providerwelt

Mitglied
Hallo zusammen !!!

Also ein kleines Problem habe ich übermittle Daten mit curl an eine andere Webseite

PHP:
ini_set('display_errors', 1);
error_reporting(E_ALL);
$request = "auth-userid=xxxxxxx&auth-password=xxxxxxx&domain-name=providerwelt&tlds=net";
$ch = curl_init();
#curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
#curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($ch) or die('Es ist ein Fehler aufgetreten.');
curl_close($ch);

print $response;

soweit alles gut
nun zu meinen problem:

Ich möchte die übermittelten Daten in $request weiterverarbeiten
wie kann ich diese Lesen und in Variablen packen.

danke für eure Hilfe
 
Du hast 2 Möglichkeiten.
Die erste ist Dynamische Variablen zu erstellen.
Dabei ist allerdings zu beachten, dass ein - (Minus) nicht im Variablennamen enthalten sein darf.
Aus diesen Grund habe ich in dein Request die - durch ein _ (Unterstrich) ersetzt.

PHP:
ini_set('display_errors', 1);
error_reporting(E_ALL);
$request = "auth_userid=xxxxxxx&auth_password=xxxxxxx&domain_name=providerwelt&tlds=net";
$ch = curl_init();
#curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
#curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($ch) or die('Es ist ein Fehler aufgetreten.');
curl_close($ch);

print $response;

parse_str( $request );

echo '<br />' . auth_userid . ' ---- ' . $auth_userid;
echo '<br />' . auth_password . ' ---- ' . $auth_password;
echo '<br />' . domain_name. ' ---- ' . $domain_name;
echo '<br />' . tlds. ' ---- ' . $tlds;

Die zweite Variante ist die Inhalte in ein Array zu schreiben, dabei können deine Feldbezeichner erhalten bleiben.

PHP:
ini_set('display_errors', 1);
error_reporting(E_ALL);

$request = "auth-userid=xxxxxxx&auth-password=xxxxxxx&domain-name=providerwelt&tlds=net";
$ch = curl_init();
#curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
#curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($ch) or die('Es ist ein Fehler aufgetreten.');
curl_close($ch);

print $response;

parse_str( $request, $RESPONSE_ARRAY );

var_dump( $REQUEST_ARRAY  );

Mit dieser Variante könntest du auf die Felder mittels der Bezeichner im Array zugreifen.
So z.B.

PHP:
$RESPONSE_ARRAY['auth-userid']

Persönlich würde ich zur 2. Variante tendieren.
 
Zuletzt bearbeitet:
Du startest den Curl-Request und übermittelst die Daten mittels Post.

Du kannst also in der Datei auf die Daten durch die PHP Variable $_POST zugreifen.

z.B. so:
PHP:
echo $_POST['auth-userid'];
echo '<br /> auth-password' . $_POST['auth-password'];
echo '<br /> domain-name' . $_POST['domain-name'];
echo '<br /> tlds' . $_POST['tlds'];
 
Danke, wieso das jetzt geht k.a.

aber gleich noch ein Problem habe es genau nach Anleitung gemacht

PHP:
ini_set('display_errors', 1);
error_reporting(E_ALL);
$request = "auth-userid=xxxxxxx&auth-password=xxxxxxx&domain-name=providerwelt&tlds=net";
$ch = curl_init();
#curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
#curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
$response = curl_exec($ch) or die('Es ist ein Fehler aufgetreten.');
curl_close($ch);

print $response."<br><br><br>";      //ausgabe so OK

$xml = simplexml_load_string($response);
print $xml->LIZENZ->STATUS[0];


Diese xml kommt zurück:

Code:
print"<LIZENZ>
<STATUS>1000</STATUS>
<OWNER>".$_POST['auth-userid']."</OWNER>
<ADMIN>".$_POST['domain-name']."</ADMIN>
</LIZENZ>";

leider kommt folgende Fehlermeldung:

Fatal error: Call to undefined function  simplexml_load_string() in /home/promoun1/public_html/kundencenter/lizenzsystem/startxxxxxx5.php on line 21


Jemand ne Idee ???

Danke im voraus
 
Deiner PHP-Installation fehlt die XML-Erweiterung.
Diese musst du zunächst installieren und in der php.ini aktivieren.

Wenn du ein Shared-Webspace hast setze dich mal mit dein Provider in Verbindung.
Falls es ein Root-Server ist, bei dem du root zugriff hast musst du diese erst installieren

unter Debian/Ubuntu mit PHP5:
Bash:
sudo apt-get install php5-xmlrpc

Ein restart des Webserver empfiehlt sich danach.
 
Zurück