cUrl и ошибка 400

Статус
В этой теме нельзя размещать новые ответы.

KillDead

Хранитель порядка
Регистрация
11 Авг 2006
Сообщения
894
Реакции
579
Делаю следующее- хожу по сайту с помощью библиотеки curl, в мульти поточном режиме. Запустил скрипт у себя, с помощью wampserver, php 5.3, cURL 7.19.4. Всё нормально. Запустил скрипт на другой машине, но под тем же сервером- при соединении с одной из страниц сайта – появляется ошибка 400.
HTML:
Bad Request
Your browser sent a request that this server could not understand.

Invalid URI in request Cookie: Elgg=a1eoelbvvmora5074he0t93q2
Заголовки, которые посылает курл
HTML:
 GET / HTTP/1.1 
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; WOW64; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30618) 
Host: xxxx.com 
Accept: */* 
Cookie: Elgg=oeqf7gc1ifo0142cqcu70nf3d5 
Connection: keep-alive 
Keep-Alive: 300 
Accept-Encoding: gzip,deflate 
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7 
Accept-Language: ru,en-us,en;q=0.5



Заголовки, которые я получаю у себя, которые отдаёт сайт (должен по крайней мере)
HTML:
HTTP/1.1 200 OK 
Date: Wed, 28 Jul 2010 17:29:26 GMT 
Server: Apache 
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 
Expires: Thu, 19 Nov 1981 08:52:00 GMT 
Pragma: no-cache 
Keep-Alive: timeout=15, max=100 
Connection: Keep-Alive 
Transfer-Encoding: chunked 
Content-Type: text/html; charset=UTF-8

--------------
Где может быть моя ошибка?
 
Заголовки которые отправляет твой браузер -- и сравнивай с тем что отправляет курл

нафига ты тут выложил стандартный 200 ответ сервера -- непонятно

ЗЫ что за пробел перед гетом?
 
ты бы лучше скрипт выложил, не все обладают способностью к реверсингу кода на основе результатов его работы
 
Заголовки которые отправляет твой браузер -- и сравнивай с тем что отправляет курл
Да я сравнивал со снифером в браузере
HTML:
(Request-Line)    GET / HTTP/1.1 
Host    хххх.com 
User-Agent    Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 
Accept    text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language    ru,en-us;q=0.7,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 
Cookie    Elgg=1422d6f3b5f018048986a9dddcd016bc
вроде аналогичный хеад.
нафига ты тут выложил стандартный 200 ответ сервера -- непонятно
ЗЫ что за пробел перед гетом?
Этот ответ я получаю на 1 компе (сейчас ещё проверил и на нетбуке- норм) и если хожу через браузер. На другой машине сервер что-то не понимает в хеадере.
Пробел- ошибка копипаста)
ты бы лучше скрипт выложил, не все обладают способностью к реверсингу кода на основе результатов его работы
эт сделать проблематично, тк нужно выкладывать всю либу и её копать. Мой запрос выглядит так))
PHP:
    function reg_result($content) {
        $fp = fopen(TEMP_DIR . '/result_user.log', 'a');
        fwrite($fp, $this->chek_url . ' ' . $this->user_login . ' ' . $this->user_pass . ' ' . $this->user_email . "\n");
        fclose($fp);
        return array(
            'url' =>trim($this->chek_url),
            'callback' => 'login_step1_post'
        );
    }
trim($this->chek_url)- это урл, по которому пойдёт курл, трим я потом дописал, на всякий пожарный, но не помогло
 
вообще функция пишет лог в файл

и запросом тут и не пахнет =)

посему два вопроса
1) ты знаешь что делаешь ?
2) если ты выложишь под хайдом ресурс и что нужно делать разговор будет предметнее
 
вообще функция пишет лог в файл
и запросом тут и не пахнет =)
посему два вопроса
1) ты знаешь что делаешь ?
2) если ты выложишь под хайдом ресурс и что нужно делать разговор будет предметнее
1)- пока всё работало- точно знал что делаю, теперь не знаю:D И там не лог, а запись результата.
Вроде понял в чём может быть дело. Перед тем как начать ходить по сайту, проверял почту классом
а он использовал stream_wrapper_register. пока исключил его- всё работает, хоть и не полноценно, но точно скажу что виноват именно он- когда попробую запустить и с ним и без него.
------------------------------------------
Сейчас залил на сервер и появился нубский вопрос:ah:- как сделать в curl перенаправление, если сервер вернул 302? опции FOLLOWLOCATION= 1 и MAXREDIRS = 10 стоят, у меня всё работает, а на сервере нет- перенаправления не происходит.
 
FOLLOWLOCATION может быть запрещен настройками сервера

уверен что это не так?

PS ты в курсе что такое лог? в любом случае у тебя даже файл называется result_user.log =)
 
FOLLOWLOCATION может быть запрещен настройками сервера
уверен что это не так?
скорее всего так и есть. а где это можно посмотреть\включить?
PS ты в курсе что такое лог? в любом случае у тебя даже файл называется result_user.log =)
я просто подумал, что ты всю функцию логом обозвал) Там просто все общение с курлом происходит через либу, которая по очереди вызывает из класса методы.
 
у тебя error_reporting(~E_ALL) включен?
обычно если FOLLOWLOCATION отключен при попытке его установить выводится сообщение

проверь safe_mode и open_basedir в php.ini
 
у тебя error_reporting(~E_ALL) включен?
обычно если FOLLOWLOCATION отключен при попытке его установить выводится сообщение
проверь safe_mode и open_basedir в php.ini
:D ага, точно, open_basedir всё гадит.
Ошибки всегда включаю, забыл только display_errors включить). Теперь буду думать- расширять системные требования или пытаться дописать, хотя это не лучший вариант.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху