views:

88

answers:

1

I have a page called send.email.php which sends an email - pretty simple stuff - I pass an order id, it creates job request and sends it out. This works fine when used in the context I developed it (Use javascript to make an AJAX call to the URL and pass the order_id as a query parameter)

I am now trying to reuse the exact same page in another application however I am calling it using php file_get_contents($base_url.'admin/send.email.php?order_id='.$order_id). When I call the page this way, the $_SESSION array is empty isempty() = 1.

Is this because I am initiating a new session using file_get_contents and the values I stored in the $_SESSION on login are not available to me within there?

--> Thanks for the feedback. It makes sense that the new call doesn't have access to the existing session...

New problem though:

I now get: failed to open stream: HTTP request failed! When trying to execute:

$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);

YET, the URL works fine if I call it as: (It just doesn't let me access session)

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

It is because the server uses cookies to track clients. When you call the page from your browser the session cookie is passed along the request. When you use file_get_contents function, no cookie is passed and the server cannot identify the client. Here's a post that might help you.

Darin Dimitrov