2017-12-13 3 views
-1

Ich versuche, ein Formular mit Curl in PHP einzureichen. Gibt es irgendein Netz, um den Namen der Felder auf Ziel-URL zu bekommen, so dass ich sie meinen Feldern zuordnen kann. Unten ist mein Code, ich verwende für curl:Formular mit curl in PHP senden

<form action="" method="post"> 
<input type="text" name="name" > 
<input type="text" name="email"> 
<input type="submit" name ="create_account"> 
</form> 


<?php 
if(isset($_POST['create_account'])){ 
$name = $_POST['name']; 
$email = $_POST['email']; 
$url = "www.exampleurl.com"; // Where you want to post data 
try { 
    $ch = curl_init(); 

    if (FALSE === $ch) 
    throw new Exception('failed to initialize'); 

    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_POST, true); // Tell cURL you want to post something 
    curl_setopt($ch, CURLOPT_POSTFIELDS, "name=". $name ."&email=". $email); 
    // Define what you want to post 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    //curl_setopt(/* ... */); 
    $content = curl_exec($ch); 
    $info = curl_getinfo($ch); 
    $json = json_decode($content, true); 
    if (FALSE === $content) 
    throw new Exception(curl_error($ch), curl_errno($ch)); 

    } catch(Exception $e) { 

    trigger_error(sprintf(
    'Curl failed with error #%d: %s', 
    $e->getCode(), $e->getMessage()), 
    E_USER_ERROR); 
    } 
} 
?> 
+0

Was ist der Fehler, den Sie bekommen? – Camille

+0

Ich kann meine Felder nicht auf Ziel-URL-Felder abbilden – Archana

+0

Die Zuordnung erfolgt mit 'CURLOPT_POSTFIELDS', sollte funktionieren. Sind Sie sicher, dass die URL, die das HTML-Formular anzeigt, dieselbe ist wie eine übergebene (Aktionsparameter im Formular-Tag)? – Camille

Antwort

1

Try this:

$data = array('name'=>$name, 'email'=>$email); 
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); 

Von php5 nach oben, Verwendung von http_build_query empfohlen.

Vor php5 konnten Sie urlencode() für jeden var-Wert ausführen.