Задать вопрос
@Flysink

Curl создает разные PHPSESSID так и должно быть?

Возникла проблема, возможно не все понимаю надеюсь на вашу помощь либо подсказку.
Делаю запрос на сайт:
function test($url) {
	global $cookies;
        $ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_HEADER, true);
	curl_setopt($ch, CURLOPT_USERAGENT, "User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).$cookies);
	curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).$cookies);
        $res = curl_exec($ch);
	curl_close($ch);
	return $res;
}
echo  test("http://**"*);

Меня интересует из header сессия PHPSESSID= если зайти через google chrome в network и посмотреть какую создает PHPSESSID= она будет отличаться от моей, так и должно быть ? все это мне необходимо для авторизации на сайте через капчу, после ввода капчи сайт возвращает ошибку "Вы не верно ввели капчу" если создать дополнительный запрос
$header = array(
	'Accept:image/webp,image/*,*/*;q=0.8',
	'Accept-Encoding:gzip, deflate, sdch',
	'Accept-Language:ru,en;q=0.8',
	'Connection:keep-alive',
	'Host:**',
	'Referer:**',
	'User-Agent:Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36',
	$session
	);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

и передать сессию из request header в Network только в этом случаи получаеться пройти авторизацию, какие есть варианты ?
  • Вопрос задан
  • 445 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
glebovgin
@glebovgin
Full Stack Web Developer
Конечно, PHPSESSID генерируется для каждого юзера отдельно. Вы не можете скопировать из Chrome эту переменную и передать ее в curl. Для curl-соединения будет свое значение. Капчу вам надо распознавать либо вручную (если простая), либо через автоматизированные сервисы за деньги.
Ответ написан
Комментировать
@Flysink Автор вопроса
уже много вариантов перепробовал, даже когда и в ручную ввожу капчу и передаю через пост пишет о не верном вводе, в каком формате передавать узнаю с той же вкладе network, пример моего запроса:

if (!isset($_POST['captcha'])) {
$result = test(_URL2);   // получаю капчу
preg_match('/<img src="captcha.php" alt="captcha">/is',$result,$view);
$str = str_replace('<img src="captcha.php" alt="captcha">','captcha.php',$view[0]);
                                     // создаю форму и отправляю
}
else {
$result = test(_URL2,'captcha='.$_POST['captcha']);
echo $result;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы