2010-04-13 3 views
1

У меня есть страница send.email.php, которая отправляет электронное письмо - довольно простой материал - я передаю идентификатор заказа, он создает запрос на работу и отправляет его. Это отлично работает при использовании в контексте, который я разработал. (Используйте javascript для вызова AJAX для URL-адреса и передайте order_id как параметр запроса)

Теперь я пытаюсь повторно использовать ту же страницу в другом приложении, но я я вызываю его, используя php file_get_contents($base_url.'admin/send.email.php?order_id='.$order_id). Когда я вызываю страницу таким образом, массив $ _SESSION пуст isempty() = 1.

Это потому, что я инициирую новый сеанс, используя file_get_contents, и значения, которые я сохранил в $ _SESSION при входе в систему, недоступны мне там?

-> Спасибо за отзыв. Это имеет смысл, что новый вызов не имеет доступа к существующему сеансу ...

Новая проблема, хотя:

я теперь получить: не удалось открыть поток: HTTP запрос не удалось! При попытке выполнить:

$opts = array('http' => array('header'=> 'Cookie: ' . $_SERVER['HTTP_COOKIE']."\r\n")); 
$context = stream_context_create($opts); 
$contents = file_get_contents($base_url.'admin/send.sms.php?order_id='.order_id, false, $context); 

Тем не менее, URL работает отлично, если я называю это так: (Это просто не дает мне сеанс доступа)

$result file_get_contents($base_url.'admin/send.sms.php?order_id='.$order_id); 

ответ

9

Это происходит потому, что сервер использует куки отслеживать клиентов. Когда вы вызываете страницу из своего браузера, cookie сеанса передается по запросу. Когда вы используете функцию file_get_contents, cookie не передается, и сервер не может идентифицировать клиента. Here's a post, которые могут вам помочь.

Смежные вопросы