Передача id Сессии

  • Автор темы Автор темы e_moon
  • Дата начала Дата начала

e_moon

Новичок
Передача id Сессии

Здравствуйте, совсем запутался с сессиями.

Стоит задача отправки "авторизированного" POST запроса между скриптами.
Как решение, конечно же, пришло на ум использовать сессии.
Но тут столкнулся с проблемой.

1. Создаю и регистрирую сессию
2. Отправляю POST-запрос, добавив id сессии в переменную $_POST['PHPSESSID']
3. Скрипт виснет.

PHP:
session_start();
session_register('request');
$_POST['request']=$_SESSION['request']=substr(time(),0,3);
$_POST['PHPSESSID']=session_id();

$this->POST();

Принимающий скрипт в упрощенном виде:
PHP:
print '<pre>';
print_r($_POST);
print_r($_SESSION);
exit;

/*
Все это ради 
if($_POST['request']==$_SESSION['request'])
*/

Без $_POST['PHPSESSID'] улетает мгновенно, но естественно, скрипт получающий запрос, в упор не видит сессии (массив $_SESSION пуст). Подскажите, что делаю не так. Да и вообще, реально ли использовать сессии для "подписи" HTTP-запросов?
 
2. Отправляю POST-запрос, добавив id сессии в переменную $_POST['PHPSESSID']
очевидно отпревляешь пост запрос не так...
переменная $_POST для приема данных, а не для отправки.
 
Автор оригинала: Alexandre
очевидно отпревляешь пост запрос не так...
переменная $_POST для приема данных, а не для отправки.
В моем случае, в $_POST я собираю данные для отправки (смотрите выше).

-~{}~ 12.02.10 13:59:

Автор оригинала: triumvirat
а где session_start()?


некрофил? http://www.php.net/manual/en/function.session-register.php
session-register() мне нафиг не нужно, согласен. По привычке пишу...

-~{}~ 12.02.10 14:01:

а где session_start()?
Прошу прощения...

Принимающий скрипт:

Код:
if (isset($_POST['request'])) session_start();

print '<pre>'; 
print_r($_POST); 
print_r($_SESSION); 
exit; 

/* 
Все это ради  
if($_POST['request']==$_SESSION['request']) 
*/
 
PHP:
POST test2.php 
HTTP/1.0
Host: ".$_SERVER['HTTP_HOST']."
Referer: http://".$_SERVER['HTTP_HOST']."/test1.php
Content-length: ".strlen(implode('&',$_POST))."
Content-type: application/x-www-form-urlencoded

".implode('&',$_POST))
но это же маразм полнейший....

если тебе нужно отправить post-запрос, то для этого есть библиотеки, тот же cURL
 
Автор оригинала: dimagolov
PHP:
POST test2.php 
HTTP/1.0
Host: ".$_SERVER['HTTP_HOST']."
Referer: [url]http://[/url]".$_SERVER['HTTP_HOST']."/test1.php
Content-length: ".strlen(implode('&',$_POST))."
Content-type: application/x-www-form-urlencoded

".implode('&',$_POST))
но это же маразм полнейший....

если тебе нужно отправить post-запрос, то для этого есть библиотеки, тот же cURL
А чем штатными средствами fscockopen полохо? Да и cURL, на сколько я о нем осведомлен, использует те же сокеты, по-сути предоставляя лишь интерфейс пользователю для упращения работы.
 
e_moon, ну хотя-бы потому, что ты неправильно кодируешь данные.

-~{}~ 12.02.10 08:35:

и потом. как ты думаешь, request окажется в сессии принимающего скрипта? или они на одном сервере и/или разделяют хранилище сессионных данных?
 
Что Вы имеете в виду? session_start() и объявления $_SESSION['request'] не достаточно?

e_moon, ну хотя-бы потому, что ты неправильно кодируешь данные.
Что неправильного в моем коде?

и потом. как ты думаешь, request окажется в сессии принимающего скрипта? или они на одном сервере и/или разделяют хранилище сессионных данных?
Вот здесь не понятно, а почему не окажутся? Расскажи, пожалуйста. Оба срипта на одном сервере.
 
прочти линк который я постил
к примеру думаю поможет кусок от "За это отвечают две настройки в php.ini:" и до "и механизм работать не будет."
дальше как попрет...
 
Автор оригинала: dimagolov
так нахрена ты выделываешься с POST-запросами?
А что предлагаеш? Не выделываться, а проверять $_REFERER?
Тут есть одно но: срипт 2 должен обрабатывать отправку запроса:
1. с общедоступной формы, в которой пользователь вводит код с изображения
2. из панели зарегистрированного пользователя, где ему вводить изображение не нужно

Полагаться только на $_REFERER и авторизацию (построена на отправке $_COOСKIE) - мне видится крайне не надежно ибо кто угодно имея действительную куку на своем ПК сможет программно слать запросы скрипту.
Переработать систему авторизации сейчас нет времени.

Почему у меня возник вопрос. Есть форма (action="test2.php"), на странице которой вызывается image.php. Этот image.php регистрирует сессию для сверки с введеным числом. Все понятно.
Теперь случай, который мы здесь обсуждаем. Мне совершенно не понятно, почему в test1.php нельзя произвести такую же самую регистрацию сессии как в image.php и далее программно отправить запрос?
 
нифига в твоей логике не понял. если у тебя просто капча, почему ты из скрипта в скрипт пытаешься передать что-то через POST. зачем?

ты нифига не понимаешь как работают сессии. читай ссылку, что тебе дали до полного просветления, пока не поймешь, что ВСЕ, что ты тут писал полнейший бред.
 
что то я в пятницу как то туго соображаю.
аффтар давай по порядку, что за скрипты, где лежат, зачем понадобилось "отправки "авторизированного" POST запроса". Сейчас же твои посты больше похожи на какой то поток сознания ыыы =)
 
Сверху