А.в. Ясинский
10 сообщений
#17 лет назад
Как получить сессию не заходя на сайт в браузере?
Станислав Малкин
1410 сообщений
#17 лет назад
Что значит "получить"?
А.в. Ясинский
10 сообщений
#17 лет назад
Сессия - идентифитор браузера (грубо говоря). Мне надо подключится к сайту не браузером а скриптом. Тоесть можно сказать РНР скрипт должен эмулировать браузер.
Болатов А.
1090 сообщений
#17 лет назад
Налицо полное непонимание, каким образом работают web-сервера.
Вадим Т.
3240 сообщений
#17 лет назад
Чтобы работали сессии в скрипте, достаточно сохранять cookies между реквестами. Хотя, если серверная часть грамотно написана и сконфигурирована, то даже и это не нужно, так как идентификатор сессий будет добавляться ко всем линкам и формам.
Александр Х.
76 сообщений
#17 лет назад
Сессии хранятся на сервере, а ее идентификатор передается в браузер при помощи заголовков, как правило это строка типа PHPSESSID=erte45d38d5c066f3959dd6f5b0d87ec4
При первом визите, сервер отдает новую такую строку, браузер сохраняет ее, и при последующих обращениях к серверу, браузер передает эту строку как есть.
Таким образом, при первом визите ваш скрипт должен получить эту строку, и сохранить ее, при последующих обращениях он должен передать эту строку без изменения.
Изучить как это работает просто, достаточно создать сессию, и вызвать phpinfo(), там хорошо видно, какие заголовки, переменные при этом работают.
А.в. Ясинский
10 сообщений
#17 лет назад
Sxq, "Изучить как это работает просто, достаточно создать сессию"... сессию с того сайта? 0_о

tvv, мне надо подключится к рис. (не больше и не меньше) а без сессии он не существует.
Вадим Т.
3240 сообщений
#17 лет назад
Цитата ("search"):
tvv, мне надо подключится к рис. (не больше и не меньше) а без сессии он не существует.


дайте линк на рисунок, пришлю код как сделать.
только заодно скажите, на Perl или PHP делать, или еще на чем-нить.
А.в. Ясинский
10 сообщений
#17 лет назад
Php
- тут рис.
- сам рис.
Вадим Т.
3240 сообщений
#17 лет назад
$ch = curl_init("http://kyivstar.net/_sms.html");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "/tmp/cookie.txt");
curl_exec($ch);
curl_setopt($ch, CURLOPT_URL, "http://kyivstar.net/sms_code_image.gif");
$image = curl_exec($ch);
curl_close($ch);

if ($fp = fopen("image.gif", "w")) {
fwrite($fp, $image);
fclose($fp);
}


Только что проверил на php 4.4.4 - работает.
В PHP 5 возможно использовать другую опцию, не COOKIEJAR.
Не забудьте выставить корректный путь к файлу cookie.txt.
Александр Х.
76 сообщений
#17 лет назад
Цитата ("search"):
sxq, "Изучить как это работает просто, достаточно создать сессию"... сессию с того сайта? 0_о

tvv, мне надо подключится к рис. (не больше и не меньше) а без сессии он не существует.

Мда, если человек не понимает как работает механизм сессий, то его надо изучить, а не тупо вставлять приведенный пример. Речь шла о создании сессии у себя и изучить как это работает, думаю что сделать у себя программу которая создает сессию и выводит на экран все настройки не потребует много времени и ума.
А.в. Ясинский
10 сообщений
#17 лет назад
Tvv, убрал несколько лишних символов, работает отлично в 5.2.0. Огромное спасибо!
Вадим Т.
3240 сообщений
#17 лет назад
А какие символы там лишние?
А.в. Ясинский
10 сообщений
#17 лет назад
";" - 2 штуки в 1 и 5 строках
Андрей Г.
11 сообщений
#17 лет назад
Идентификатор сессии через куки передается, а не в заголовках.
Вадим Т.
3240 сообщений
#17 лет назад
Цитата ("search"):
";" - 2 штуки в 1 и 5 строках


А, да, точно, это Weblancer.net вставляет иногда лишние символы при постинге кода, если есть кавычки, скобки и т.д.

Цитата ("korvin0"):
Идентификатор сессии через куки передается, а не в заголовках.


Забавно. Ну конечно через куки. Только вот вопрос на засыпку - а сами куки как передаются, не в заголовках (HTTP headers) ли случайно ?
Игорь Б.
456 сообщений
#16 лет назад
Почитай книги. В любой книге по ПХП есть главы посвященные сессиям.