简体   繁体   English

从CURL发送和接收数据

[英]Send and receive data form CURL

I have simply script: 我只是脚本:

<?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>

captcha is random, but for this test i use always 'random'. 验证码是随机的,但对于这个测试,我总是使用'​​随机'。 This script working OK. 这个脚本工作正常。

So - i would like open this site and fill in captcha and submit form and receive data from DIV #answer. 所以 - 我想打开这个网站并填写验证码并提交表格并从DIV #answer接收数据。

I create: 我创造:

$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);

This show me form, but if i fill in captcha and submit form then this not handles $_POST. 这显示了我的表格,但如果我填写验证码并提交表格,那么这不会处理$ _POST。

How can i make it? 我该怎么做? I must first fill captcha. 我必须先填写验证码。

You forgot to send the data 你忘了发送数据了

$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);

try this:- 尝试这个:-

$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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM