2017-12-13 3 views
-1

PHPでcurlを使用してフォームを送信しようとしています。ターゲットURLにフィールドの名前を取得して、フィールドにマップできるようにするWebはありますか?以下は私のコードは、私はカールのために使用しています:http_build_queryの使用が推奨され、PHP5の上向きからPHPでcurlを使用してフォームを送信

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

<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

エラーはどうなりますか? – Camille

+0

フィールドをターゲットURLフィールドにマップすることができません – Archana

+0

マッピングは 'CURLOPT_POSTFIELDS'で行われ、動作するはずです。 HTMLフォームを表示するurlがサブミットされたurl(フォームタグのactionパラメータ)と同じであることを確かめますか? – Camille

答えて

1

はこれを試してみてください。

php5の前に、各var値にurlencode()を実行することができました。

関連する問題