我有一个简单的脚本:
<?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 #答案接收数据。
我创建:
$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。
我怎么才能做到呢?我必须先把验证码填满。
发布于 2012-09-06 20:18:42
试试这个:-
$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-06 20:17:05
你忘了发数据了
$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);https://stackoverflow.com/questions/12299697
复制相似问题