я не могу вставить cookie на странице 2, некоторые советы, пожалуйста.
С помощью этого метода я загружаю страницу 1 с catcha, содержащую файл cookie, и записываю его в cookie.txt:
define('COOKIE', './cookie.txt');
define('CAPTCHA', './captcha.png');
function saveCaptcha() {
$header = array('Content-Type: image/png');
$ch = curl_init();
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch,CURLOPT_COOKIESESSION, true);
curl_setopt($ch,CURLOPT_COOKIEJAR, COOKIE);
curl_setopt($ch,CURLOPT_URL,'http://example.com/captcha/securimage_show.php');
curl_setopt($ch,CURLOPT_PROXY,'127.0.0.1:8118');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,0);
$fileContents = curl_exec($ch);
curl_close($ch);
$newImg = imagecreatefromstring($fileContents);
return imagepng($newImg, "CAPTCHA",9);
}
$fr = filesize(COOKIE);
echo COOKIE . ': ' . $fr . ' bytes';
if ($fr <= 50) saveCaptcha();
Cookie успешно сохранен и записан в cookie.txt, теперь мы пропустили капчу в форме:
<form action="index.php" method="post">
<input type="hidden" name="p" value="login" />
<div class="line">
<label>Captcha</label>
<img src="CAPTCHA" border="0" />
</div>
<div class="line">
<label> </label>
<input type="text" name="captcha" value=""/>
</div>
<div class="line">
<label> </label>
<input type="submit" value="Login" />
</div>
</form>
Теперь мы извлекаем капчу с помощью $ _POST и загружаем страницу 2 с нашим cookie.txt:
//extract data from the post
extract($_POST);
//set POST variables
$url = 'http://example.com/index.php';
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch,CURLOPT_COOKIESESSION, true);
curl_setopt($ch,CURLOPT_PROXY, '127.0.0.1:8118');
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POSTFIELDS, 'p=login&user=myuser&pass=123qwe&captcha='.$_POST['captcha'].'&submit=Login');
curl_setopt($ch,CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($ch,CURLOPT_REFERER, 'http://example.com/');
//execute post
$result = curl_exec($ch);
//close connection
curl_close($ch);
$fa = fopen(COOKIE, 'w');
@fwrite(COOKIE,'');
fclose($fa);
Страница2 загружена, но без файла cookie.Некоторые советы, возможно, вы увидели проблему ((Спасибо.