Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Curl и Cookies 
:(
    Опции темы
Reptor
Дата 10.8.2009, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



есть скрипт который ставит куки...

Так вот если я просто с другого сервака курлом дергаю этот скрипт то куки не устанавливаются.. они возращаются но не устанавливаются.. 
можно ли из как то установить через курл.. что б скрипт который я курлом дергаю их поставил
PM MAIL ICQ   Вверх
enof
Дата 10.8.2009, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR
PM MAIL ICQ Skype   Вверх
Reptor
Дата 10.8.2009, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



enof, ну так это он в файл их записует а как их установить пользователю?
PM MAIL ICQ   Вверх
icewind
Дата 10.8.2009, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 11.4.2009
Где: Ростов-на-Дону

Репутация: 20
Всего: 20



Скрипт, который ты дергаешь курлом не сможет поставить куки, потому что они не передадутся в броузер клиенту. Для того чтоб их поставить нужно получить все куки от целевого скрипта и отправить их клиенту как заголовок header("Set-Cookie: ...." ) либо установить setcookie

Это сообщение отредактировал(а) icewind - 10.8.2009, 14:29


--------------------
user posted image
PM MAIL Skype   Вверх
enof
Дата 10.8.2009, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



аа, задачу не совсем понял.
Можно перенаправить заголовок Set-Cookie.
PM MAIL ICQ Skype   Вверх
Reptor
Дата 10.8.2009, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



enof, как это сделать? вы имеете в виду через опцию 
Код

@curl_setopt ( $ch , CURLOPT_HTTPHEADER , $header );


и в хедерах просто указать куки?
А почему в скрипте который я дергаю нет реакции на установку кук?
и ещё тогда вопрос у меня  в начале идет проверка на наличие кук а потом установка.. если я просто отправлю так заголовок то не будет ли при первом заходе считаться что куки уже есть?

PM MAIL ICQ   Вверх
Reptor
Дата 10.8.2009, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



да и ещё как из передавать? ведь у меня там есть разные куки... одни на неделю другие на день и на домен второго уровня.. это всё надо учесть? 
PM MAIL ICQ   Вверх
enof
Дата 10.8.2009, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Цитата(Reptor @  10.8.2009,  15:33 Найти цитируемый пост)
А почему в скрипте который я дергаю нет реакции на установку кук?

Вы, наверное, не совсем правильно понимаете как это работает. Куки устанавливаются и работаю нормально, только они ставятся не браузеру, а скрипту, он же является клиентом.
Чтобы поставить куки на браузере нужно взять заголовок Set-Cookie, который пришел скрипту и отдать его с помощью header().
Чтобы передать куки от браузера нужно заголовок Cookie перенаправить курлом куда нужно.
Цитата(Reptor @  10.8.2009,  15:33 Найти цитируемый пост)

и ещё тогда вопрос у меня  в начале идет проверка на наличие кук а потом установка.. если я просто отправлю так заголовок то не будет ли при первом заходе считаться что куки уже есть?

что за проверка?
PM MAIL ICQ Skype   Вверх
icewind
Дата 10.8.2009, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 11.4.2009
Где: Ростов-на-Дону

Репутация: 20
Всего: 20



Куки передаются заголовком, который не транслируется курлом. Нужно сделать перенаправление руками


--------------------
user posted image
PM MAIL Skype   Вверх
Reptor
Дата 10.8.2009, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



enof, ну в начале скрипте проверка если кука установлена то пользователь был а если нет то пользователя не было... вот.. ну как уникальные заходы..

CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR 

а если делать так то выходит что кука всегда есть.. я ее получаю и отправляю и выходит что пользователь не уникальный а как буд то уже заходил

Добавлено через 12 минут и 10 секунд
уже по разному пробую ничего не выходит

Код

$header[] = "Set-Cookie: userid=mzb_16930; expires=Tue, 11-Aug-2009 12:01:13 GMT";

$ch =  curl_init ( "lst.test.com/{$_SERVER['QUERY_STRING']}");

@curl_setopt ( $ch , CURLOPT_RETURNTRANSFER , 1 );
  
@curl_setopt ( $ch , CURLOPT_VERBOSE , 1 ); 

@curl_setopt ( $ch , CURLOPT_HEADER , 1 );
 
@curl_setopt ( $ch , CURLOPT_FOLLOWLOCATION , 1 );

// вот тут недер и ничего - кук нету в броузере
@curl_setopt ( $ch , CURLOPT_HTTPHEADER , $header );

PM MAIL ICQ   Вверх
enof
Дата 10.8.2009, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Цитата(Reptor @  10.8.2009,  15:56 Найти цитируемый пост)
Set-Cookie: userid=mzb_16930; expires=Tue, 11-Aug-2009 12:01:13 GMT

на сервер нужно отправлять Cookie:
Опишите задачу с самого начала. Типа есть браузер, есть скрипт, есть удаленный сервер, с которого что-то тянется курлом. Что нужно сделать?

Добавлено через 23 секунды
И не нужно пользоваться собаками.
PM MAIL ICQ Skype   Вверх
Reptor
Дата 10.8.2009, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



значит есть сервер 1 и 2

на сервере 2 есть скрипт (ну страничка сайта) на это страничке когда приходит пользователь смотрится или стоит кука ( если не то это уникальный заход ) а потом она ставится и выходит так что если пользователь заходит второй раз то идет эта проверка и пользователь уже не уникальный.. и в конце просто редирект на 2-ую страничку

Так вот на сервере 1 есть скрипт который должен показыать эту страничку (и это делаю через курл) но что б логика с куками осталась.. но вылезла проблема с куками я не могу сделать так что б было как реально... дергается скрипт проверяется на наличие кука и потом ставится.. 

так вот как установить эти куки?

Добавлено через 8 минут и 21 секунду
установить я имею в виду так как это делается если нормально на страничку зайти.. что б в браузере были видны
PM MAIL ICQ   Вверх
Reptor
Дата 10.8.2009, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



Просто если использовать 
CURLOPT_COOKIEFILE
CURLOPT_COOKIEJAR

Добавлено через 50 секунд
то он показывает всегда что куки установлены... если заходить с чистого браузера то говорит что пользователь уже был.. 


PM MAIL ICQ   Вверх
enof
Дата 10.8.2009, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Браузер обращается к серверу 1, скрипт проверяет куку обычным способом, ну т.е.
Код

$ch = curl_init("сервер2");//
if(isset($_COOKIE['u'])) {
  //Кука установлена. Отправляем курлом заголовок Cookie
  curl_setopt($ch, CURLOPT_COOKIE, /*....*/);
}
curl_exec($ch);
header("Заголовк Set-Cookie, который вернул сервер2, если они конечно есть.");

Ну вот что-то типа такого.
PM MAIL ICQ Skype   Вверх
Reptor
Дата 10.8.2009, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



enof, ну это да... ну как определить уникальность понятно... 
а вот как я поставлю куку  в браузер? там же домен другой

я смогу с сервера один поставить куку на сервер 2?
PM MAIL ICQ   Вверх
enof
Дата 10.8.2009, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



поставить можно, прочитать нет.
PM MAIL ICQ Skype   Вверх
Reptor
Дата 10.8.2009, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



а как поставить куки на 2-ой домен?

Добавлено через 4 минуты и 33 секунды
да и ещё а можно как то сделать что б было видно редирект в  строке браузера.. хотелось бы что б линка в  браузере оказалась того сайта с сервера второго а не та откуда я скрипт с курлом дергаю
PM MAIL ICQ   Вверх
enof
Дата 10.8.2009, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Цитата(Reptor @  10.8.2009,  17:50 Найти цитируемый пост)
а как поставить куки на 2-ой домен?

http://php.net/setcookie -> $domain.
Цитата(Reptor @  10.8.2009,  17:50 Найти цитируемый пост)

да и ещё а можно как то сделать что б было видно редирект в  строке браузера.. хотелось бы что б линка в  браузере оказалась того сайта с сервера второго а не та откуда я скрипт с курлом дергаю 

Код

header("Location: server2");

Только непонятно, зачем тогда все эти манипуляции с курлом?
PM MAIL ICQ Skype   Вверх
Reptor
Дата 10.8.2009, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: 0
Всего: 0



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

Добавлено через 3 минуты и 21 секунду
я так и ставлю куки но почемуто их не вижу.. что б они поставились 

Код

setcookie('userPay', $data[4], time()+_CFG_COOKE_TTL_MONTH, "/", ".domain.com")

PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0682 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.