Forums / Developer / Use of ezhttp with session variables

Use of ezhttp with session variables

Author Message

Emmanuel Bosatelli

Tuesday 30 May 2006 9:45:35 am

Hi all,

I have a problem with setting a session variable in a php script and then retrieving it in a template. It seems easy, and maybe it is, but I've struggled for several hours...

In my pagelayout.tpl I've included the following code :

<p>My variable : {ezhttp('myvar','session')}</p>
<form method="post" action="/updateSession.php">

<input id="module_result_uri" type="hidden" name="module_result_uri" value="{$module_result.uri}" />

....
</form>

The file updateSession.php looks like :

<?php
$redirect_uri = $_POST['module_result_uri'];

include_once( "lib/ezutils/classes/ezhttptool.php" );
$http =& eZHTTPTool::instance();
$http -> setSessionVariable('myvar','value');

header("location:$redirect_uri");

//print($http->sessionVariable('myvar'));print("<br/>");
//print($http->sessionId());
?>

The principle is that when the form is submitted, the php script sets some session variables (normally with submitted values) and then the original page is displayed and session-saved variables should be available for later operations.

The problem is that when the original page is displayed again, the line {ezhttp('myvar','session')} does not display any value.

I'm not sure I have well understood how eZ publish sessions work (is there a configuration to do to access session variables in a template?), but finding information about it is rather hard...

Any help or advice is really really welcome !
Thanks.
Emmanuel

Emmanuel Bosatelli

Wednesday 31 May 2006 9:36:38 am

I've solved my problem by using an alternative solution : I moved the code from the file updateSession.php into a template operator, and then it works, I can set and retrieve session variables.

Nevertheless, I'm still interessed to know why my first solution does not work, if anybody can explain it to me.
emmanuel

ola adigun

Monday 08 January 2007 2:23:09 pm

Do you care sharing more info on how this was accomplished?

Kristof Coomans

Monday 08 January 2007 11:17:23 pm

@Emmanuel

Your updateSession.php script does not initialize your eZ environment, and doesn't initialize the eZ session handler (db storage of session vars).

It's better to create a module/view for this, then the eZ environment gets initialized by the front controller (index.php).

independent eZ Publish developer and service provider | http://blog.coomanskristof.be | http://ezpedia.org