1

私は単にスクリプトを持っています:

<?php if($_POST){
    if($_POST['captcha'] == 'random'){ ?>
<div id="answer">
    <?php echo $_POST['captcha'] . uniqid(); ?>
</div>
<?php
    }

} ?>

<form name="contactform" method="post" action="">
    email: <input  type="text" name="email"> <br />
    ###IMAGE###: random <br />
    captcha: <input  type="text" name="captcha">
    <input type="submit" value="Submit">
</form>

キャプチャはランダムですが、このテストでは常に「ランダム」を使用します。このスクリプトは正常に動作します。

ですから、このサイトを開いてキャプチャを入力し、フォームを送信して、DIV #answer からデータを受け取りたいと思います。

私は作成します:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://localhost/script.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = curl_exec($ch);
curl_close($ch);

print_r($output);

これはフォームを表示しますが、キャプチャを入力してフォームを送信すると、$_POST が処理されません。

どうすれば作れますか?最初にキャプチャを入力する必要があります。

4

2 に答える 2

2

データを送信するのを忘れた

$postdata = "email=".$username."&password=".$password."&captcha=random";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://localhost/script.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);

curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1); 

$output = curl_exec($ch);
curl_close($ch);

print_r($output);
于 2012-09-06T12:17:04.743 に答える
2

これを試して:-

$email = $_POST["email"];
$pass = $_POST["pass"];
$captcha = $_POST["captcha"];
$curlPost = array('email' => $email, 'password'=>'$pass', 'captcha'=>$captcha);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost/script.php');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec();
curl_close($ch);

echo "<pre>";
print_r($data);
于 2012-09-06T12:18:41.863 に答える