- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Надо сравнить VERBOSE с FOLLOW_LOCATION и этим эмулятором перехода, сравнить какие куки когда выдаются, какие адреса когда открываются итд то есть полностью два процесса сравнить логи. Да и ваше правильно подметили. Но логи вам это и покажут
Вот с VERBOSE:
> POST /login HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:11.0) Gecko/20100101 Firefox/11.0
Host: www.site.com
Accept: */*
Referer: http://www.site.com/login
Cookie: STGSHYTEFG=E1320FD3211D6AAFD65ABC19...
Content-Length: 86
Content-Type: application/x-www-form-urlencoded
* upload completely sent off: 86 out of 86 bytes
< HTTP/1.1 302 Found
< Cache-Control: private
< Content-Type: text/html; charset=utf-8
< Location: /account_page
< Server: Microsoft-IIS/7.5
* Replaced cookie STGSHYTEFG="899227A88B4B3C8992..." for domain www.site.com, path /, expire 0
< Set-Cookie: STGSHYTEFG=899227A88B4B3C8992...; path=/; HttpOnly
< Date: Mon, 04 Nov 2013 15:54:55 GMT
< Content-Length: 137
<
* Ignoring the response-body
* Connection #0 to host www.site.com left intact
* Issue another request to this URL: 'http://www.site.com/account_page'
* Violate RFC 2616/10.3.3 and switch from POST to GET
* Re-using existing connection! (#0) with host (nil)
* Connected to (nil) (50.56.211.113) port 80 (#0)
> GET //account_page HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:11.0) Gecko/20100101 Firefox/11.0
Host: www.site.com
Accept: */*
Referer: http://www.site.com/login
Cookie: STGSHYTEFG=899227A88B4B3C8992...
< HTTP/1.1 200 OK
< Cache-Control: no-cache, no-store, must-revalidate
< Pragma: no-cache
< Content-Type: text/html; charset=utf-8
< Expires: -1
< Vary: Content-Encoding
< Server: Microsoft-IIS/7.5
* Added cookie ASP.NET_SessionId="3yadwkzanursnnypckx3bt0y" for domain www.site.com, path /, expire 0
< Set-Cookie: ASP.NET_SessionId=3yadwkzanursnnypckx3bt0y; path=/; HttpOnly
< Date: Mon, 04 Nov 2013 15:54:55 GMT
< Content-Length: 42550
<
* Connection #0 to host (nil) left intact
* Closing connection #0
Как видно, в случае с cURL (CURLOPT_FOLLOWLOCATION = true) и куки ставятся другие и редирект тоже другой. В случае с эмутятором кука всего одна и редирект сразу идет на 404 (см. заголовки на предыдущей странице).
Как бы научить эмулятор делать то же самое?
---------- Добавлено 04.11.2013 в 20:13 ----------
Я это сделал (через костыль). Почитал заголовки и просто заменил POST на GET и все заработало :)
Подхватывайте куки руками, и в заговоке потом передавайте. А ну опоздал, оказывается все просто было:D
1) в хидере "Location" внутренний адрес, пробуйте добавить к нему хост и правельно передать через CURLOPT_URL.
2) как бы при редиректе на до закрыть текущее соединение curl, и по новой инициировать.
1) в хидере "Location" внутренний адрес
Там по другому не бывает, это же заголовки http
Там по другому не бывает, это же заголовки http
обратного я не утверждал.
ТС делает так curl_setopt($ch, CURLOPT_URL, $redirect_url) где $redirect_url = "/account_page"
Дайте уже ссылки - явно роще и быстрее будет
bukachuk, бывает. Это же редирект. Закрывать соединение для редиректа вовсе не обязательно. А преобразовать урл к абсолютному можно так:
Дайте уже ссылки - явно роще и быстрее будет
ТС уже решил проблему ;)
я бы грешил на парсер заголовков.
может у вас там с урлом выпарсивается \r или что-то в этом духе, что редиректу не проходит.
к тому же браузеры безболезненно обрабатывают относительные редиректы, а как курл себя поведет - хз...
ПС. уххх проспал :)
---------- Добавлено 04.11.2013 в 20:13 ----------
Я это сделал. Почитал заголовки и просто заменил POST на GET и все заработало!
Всем спасибо.
у ТС заработало.