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

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-запросов?
 

Alexandre

PHPПенсионер
2. Отправляю POST-запрос, добавив id сессии в переменную $_POST['PHPSESSID']
очевидно отпревляешь пост запрос не так...
переменная $_POST для приема данных, а не для отправки.
 

e_moon

Новичок

e_moon

Новичок
Автор оригинала: 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']) 
*/
 

dimagolov

Новичок
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
 

e_moon

Новичок
Автор оригинала: 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, на сколько я о нем осведомлен, использует те же сокеты, по-сути предоставляя лишь интерфейс пользователю для упращения работы.
 

dimagolov

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

-~{}~ 12.02.10 08:35:

и потом. как ты думаешь, request окажется в сессии принимающего скрипта? или они на одном сервере и/или разделяют хранилище сессионных данных?
 

e_moon

Новичок
Что Вы имеете в виду? session_start() и объявления $_SESSION['request'] не достаточно?

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

и потом. как ты думаешь, request окажется в сессии принимающего скрипта? или они на одном сервере и/или разделяют хранилище сессионных данных?
Вот здесь не понятно, а почему не окажутся? Расскажи, пожалуйста. Оба срипта на одном сервере.
 

Sigorma

Новичок
прочти линк который я постил
к примеру думаю поможет кусок от "За это отвечают две настройки в php.ini:" и до "и механизм работать не будет."
дальше как попрет...
 

e_moon

Новичок
Автор оригинала: dimagolov
так нахрена ты выделываешься с POST-запросами?
А что предлагаеш? Не выделываться, а проверять $_REFERER?
Тут есть одно но: срипт 2 должен обрабатывать отправку запроса:
1. с общедоступной формы, в которой пользователь вводит код с изображения
2. из панели зарегистрированного пользователя, где ему вводить изображение не нужно

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

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

dimagolov

Новичок
нифига в твоей логике не понял. если у тебя просто капча, почему ты из скрипта в скрипт пытаешься передать что-то через POST. зачем?

ты нифига не понимаешь как работают сессии. читай ссылку, что тебе дали до полного просветления, пока не поймешь, что ВСЕ, что ты тут писал полнейший бред.
 

Sigorma

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