|
|
|
| Здравствуйте! Меня интересует технический аспект передачи сесий. Т. е. мы создали сеанс, а как браузер передает потом эти значения через браузер используя заголовки заголовками. Какие заголовки он посылает? Если можно в примерах.
Буду очень признателен за ответы! | |
|
|
|
|
|
|
|
для: Саша
(07.03.2008 в 15:32)
| | Уникальный идентификатор сессии SID помещается в cookie - браузер при каждом запросе обязательно должен отправлять cookie серверу. Поэтому сервер "знает", что этот пользователь привязан к сессии с таким-то номером. | |
|
|
|
|
|
|
|
для: cheops
(07.03.2008 в 15:40)
| | А каким образом браузер отсылает этот cookie серверу? Если не ошибаюсь - то тоже заголовками. Приведу пример задачи. Допустим я залогинился не через хтмл форму, а сам послал заголовки серверу с логином и паролем и сервер вернул мне SID в ответ. Теперь мне надо методом пост получить результат поиска, но перед тем нужно както передать серверу, что я залогинен, т.е передать SID.
Пример части кода с заголовками
$fp = fsockopen($hostname,80) or die("Error");
$action = "AgentTicketSearch";
$subaction = "Search";
$StateIDs = "2";
$QueueIDs = "36";
$TimeSearchType = "TimePoint";
$TicketCreateTimePoint = "3";
$TicketCreateTimePointFormat = "day";
$data =
"Action=".urlencode($action)
."&Subaction=".urlencode($subaction)
."&StateIDs=".urlencode($StateIDs)
."&QueueIDs=".urlencode($QueueIDs)
."&TimeSearchType=".urlencode($TimeSearchType)
."&TicketCreateTimePoint=".urlencode($TicketCreateTimePoint)
."&TicketCreateTimePointFormat=".urlencode($TicketCreateTimePointFormat)
."&Session=".$match[1]
."\r\n\r\n";
$headers = "POST /index.pl?Session=$match[1] HTTP/1.1\r\n"
."Host: $hostname\r\n"
."Content-type: application/x-www-form-urlencoded;\r\n"
."Accept-Language: ru\r\n"
."Accept-Encoding: gzip, deflate\r\n"
."Set-Cookie:$match[1]\r\n"
."Content-Length: ".strlen($data)."\r\n\r\n";
fwrite($fp,$headers.$data);
while(!feof($fp)){
echo fread($fp,1024);
}
fclose($fp);
|
в этом коде я пробовал разными способами передать SID, но сервер все равно говорит что не верный SID. Т.е. я не правильно передаю SID, и не могу понять, как же правильно это сделать
ПС. SID работает когда я пробую взять страницу методом get.т.е он правильный | |
|
|
|
|
|
|
|
для: cheops
(07.03.2008 в 15:40)
| | Вот у меня вопрос, а если у пользователя к примеру куки отключены, то как же будут работать механизм сессии | |
|
|
|
|
|
|
|
для: staglu
(29.03.2008 в 19:12)
| | Он не будет работать, если сервер не настроен на автоматический переход в этом случае на метод GET. Поэтому cookie часто и просят включить - вреда от них всё-равно ни какого. | |
|
|
|
|
|
|
|
для: Саша
(07.03.2008 в 15:32)
| | С помощью cookies | |
|
|
|
|
|
|
|
для: root
(07.03.2008 в 15:40)
| | up | |
|
|
|
|
|
|
|
для: root
(07.03.2008 в 15:40)
| |
<?
setcookie('SID', $sid);
?>
|
| |
|
|
|
|
|
|
|
для: mihdan
(09.03.2008 в 11:56)
| | таким образом я с самого начала сам пробовал, так не выходит, по этому и открыл в форуме топик | |
|
|
|
|
|
|
|
для: Саша
(10.03.2008 в 01:23)
| | Ваш код
$headers = "POST /index.pl?Session=$match[1] HTTP/1.1\r\n"
."Host: $hostname\r\n"
."Content-type: application/x-www-form-urlencoded;\r\n"
."Accept-Language: ru\r\n"
."Accept-Encoding: gzip, deflate\r\n"
."Set-Cookie:$match[1]\r\n"
."Content-Length: ".strlen($data)."\r\n\r\n";
|
Попробуйте изменить так
$headers = "POST /index.pl HTTP/1.1\r\n"
."Host: $hostname\r\n"
."Content-type: application/x-www-form-urlencoded;\r\n"
."Accept-Language: ru\r\n"
."Accept-Encoding: gzip, deflate\r\n"
."Cookie:Session=$match[1]\r\n"
."Content-Length: ".strlen($data)."\r\n\r\n";
|
| |
|
|
|
|
|
|
|
для: Саша
(10.03.2008 в 01:23)
| | Саша, не обращай внимания. Для mihdan'а главное - сказать. А что сказать его не волнует. | |
|
|
|
|
|
|
|
для: Atheist
(29.03.2008 в 00:52)
| | Atheist , что опять вам не нравиться? Код, который я написал не работает??? Или вам вновь поссориться хочется и в бан попасть? Зачем опять оскорблять других | |
|
|
|
|
|
|
|
для: mihdan
(29.03.2008 в 00:56)
| | Чем не нравится? Он просит написать код для передачи cookie серверу, а не клиенту.
Ты разницу чуешь, о великий мастер? | |
|
|
|