Взимодействие курла с js(ajax).

12
Hixon10
На сайте с 21.08.2010
Offline
125
1025

Добрый день. Пишу голосовалку на один из своих сайтов, которая работает через curl. У меня возникла проблема с js. Ссылка на голос имеет вид:

<a id="voting_roxx_1356063" onclick="voteComment(1356063, this); return false" href="http://site.com/voting/comment/?score=roxx&id=1356063">

Скрипт jquery:


function voteComment(id, obj) {
jQuery('#comment_score_'+id).load(obj.href);
return false;
}

Если просто переходить по ссылке, то голос не прибавляется. Не особо понятно, почему простой переход по ссылке не прибавляет голос, ведь load лишь подгружает контент через аякс, если я правильно понимаю. Что можно сделать, чтобы проголосовать?

P.S. по клику по ссылке аяксом были переданы эти данные серверу:


id 1356063
score roxx

Ответ от сервера:

6 // 6 - количество голосов у объекта
Веду свой невзрачный блог (http://hixon.ru/).
ДП
На сайте с 23.11.2009
Offline
203
#1

Эм, как-то не особо вяжется голосовалка на свой сайт и curl.

Вообще на сервере могут проверять параметр $_SERVER['HTTP_X_REQUESTED_WITH']. Хотя если сайт ваш - то вы же и должны знать, как у вас там голоса подсчитываются.

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#2

Где curl тут?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Hixon10
На сайте с 21.08.2010
Offline
125
#3
Дикий пионер:
Эм, как-то не особо вяжется голосовалка на свой сайт и curl.
Вообще на сервере могут проверять параметр $_SERVER['HTTP_X_REQUESTED_WITH']. Хотя если сайт ваш - то вы же и должны знать, как у вас там голоса подсчитываются.

На моем сайте предоставляется услуга накрутки голосования на другом сайте.

LEOnidUKG:
Где curl тут?

Я с помощью курла разговариваю с сервером. Сейчас особо и выкладывать на курле нечего, там только авторизация пока работает.

curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-Requested-With' => 'XMLHttpRequest'));

Нашёл данную опцию, сейчас буду пробовать.

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#4

т.е. вы вот со своего сайта пытаетесь проголосовать на другом сайте и у нас тут спрашиваете, почему голос не прибавляется?

ДП
На сайте с 23.11.2009
Offline
203
#5

Да кроме этого заголовка могут еще и куки/сессии ставить для голосования, это еще учитывайте.

Hixon10
На сайте с 21.08.2010
Offline
125
#6
LEOnidUKG:
т.е. вы вот со своего сайта пытаетесь проголосовать на другом сайте и у нас тут спрашиваете, почему голос не прибавляется?

Нет, я авторизировался на нужном мне сайте, получил кукисы, перешёл на нужном сайте на страницу, где можно проголосовать. Теперь нужно отправить запрос, который будет голосовать.

Дикий пионер:
Да кроме этого заголовка могут еще и куки/сессии ставить для голосования, это еще учитывайте.

У меня 1 аккаунт = 1 голос, т.е., по идее, с этим должно быть все в порядке.

ДП
На сайте с 23.11.2009
Offline
203
#7

Тогда включите подробный вывод заголовков запросов/ответов в курле CURLOPT_VERBOSE вроде - и смотрите что передается с сервера/на сервер.

Сравните с тем, что уходит от браузера (firebug, httpanalyzer, fiddler) - добивайтесь заголовков один в один.

Hixon10
На сайте с 21.08.2010
Offline
125
#8
Дикий пионер:
Тогда включите подробный вывод заголовков запросов/ответов в курле CURLOPT_VERBOSE вроде - и смотрите что передается с сервера/на сервер.
Сравните с тем, что уходит от браузера (firebug, httpanalyzer, fiddler) - добивайтесь заголовков один в один.

Я вот сейчас и ищу, как узнать, какие заголовки уходят серверу. Через браузер заголовки:


Заголовки ответа
Server nginx/0.8.34
Date Wed, 03 Aug 2011 17:05:12 GMT
Content-Type text/html; charset=UTF-8
Transfer-Encoding chunked
Connection keep-alive
X-Powered-By PHP/5.2.12
Expires Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma no-cache
Content-Encoding gzip

Заголовки запроса
Host site.com
User-Agent Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101 Firefox/4.0
Accept text/html, */*
Accept-Language ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
X-Requested-With XMLHttpRequest
Referer http://site.com/style/69262
Cookie __utma=159256511.681784182.1312043465.1312382824.1312386775.7; __utmz=159256511.1312043465.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmc=159256511; PHPSESSID=e2a641111453d70727da6e3ec6bca893; login_id=10****___; __utmb=159256511.4.10.1312386775

CURLOPT_VERBOSE - TRUE для вывода дополнительной информации. Записывает вывод в поток STDERR, или файл, указанный параметром CURLOPT_STDERR. Что-то не вижу исходящих заголовков.

ДП
На сайте с 23.11.2009
Offline
203
#9

curl_setopt($ch, CURLOPT_HEADER, 1);

curl_setopt($ch, CURLOPT_VERBOSE, true);

так будут заголовки запроса/ответа показываться

Hixon10
На сайте с 21.08.2010
Offline
125
#10
Дикий пионер:
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, true);
так будут заголовки запроса/ответа показываться

Почему-то установка

curl_setopt($ch, CURLOPT_VERBOSE, true);

не работает. Уже пробовал и файл указывать, в который будет сохранена информация, так этот способ тоже не работает.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий