Hi,

correct me if I'm wrong, but I think its not necesarry to start session,
it's done in ZS when needed.

Regards,
Saša Stamenković.


KimG wrote:
> 
> Hi,
> 
> i'm trying to use zend session in an application.
> 
> In my boostrap i have the following:
> 
> Bootstrap.php:
> 
>         Zend_Session::start();
> 
> and 
> 
>  protected function _initOutlet(){
>      $out = new Zend_Session_Namespace('outlet');
>      if (!isset($out->outlet)) {
>         echo 'outlet initialised...';
>         $file = '/var/www/pimp/application/configs/outlet-config.xml';
>         $config = new Outlet_Configuration_Xml();
>         $config->load($file);
>         Outlet::init($config->toArray());
>         $outlet = Outlet::getInstance();
>         $outlet->createProxies();
>         $out->outlet = $outlet;
>      }
> 
> 
> the _initOutlet initilises the outlet ORM and writes the information to
> the session.
> 
> My first question is, if starting the session in the boootstrap file is
> the correct place?
> 
> second, it seems like the session gets flushed with every request from the
> client. i write a test statement to see if outlet is initialised. it
> should show only the first time but it shows up repeatedly. I don't
> understand why.
> 
> I know the information is present in the session, because i'm using it
> during user login like this:
> 
> the user is presented with a login screen and when clicking 'login' i do
> the following in a autorise helper:
> 
>       $userDao = new UserDAO();
>       $username = $value;
>       $password = $context['password'];
>       $user = $userDao->validateUser($username, $password);
> 
>       if($user == null){
>          $this->_error(self::NOT_AUTHORISED);
>         return false;
>       }
>       // write user info to session
>       $sesuser = new Zend_Session_Namespace('user');
>       $sesuser->user = $user;
>       return true;
> 
> my UserDAO class does this:
> 
>       $outletNS = new Zend_Session_Namespace('outlet');
>       $outlet = $outletNS->outlet;
>       $pwhash = self::computePasswordHash($password);
>       $usersfound = $outlet->select('User', 'WHERE username = ? and
> password = ?',  array($username, $pwhash));
>       if($usersfound == null){
>          return null;
>       }
>       $user = $usersfound[0];
>       return $user;
> 
> 
> and it works.
> 
> in other words it can retrive the outlet info from the session and query
> the database.
> 
> when the user is authenticated the user information is  written to the
> session in my validate function and he is forwarded to an welcome page
> using $this->_forward.
> 
> in this page i can retrive the user info all right like this:
> 
>    $user = new Zend_Session_Namespace('user');
>       $this->view->user = $user->user->username;
> 
> and use the information in my view.
> 
> when the user navigates to the main page ('located' in another controller)
> i need the user information again but this time there is a request
> involved which seems to clear the session.
> 
> because in my controller action i do this:
> 
> $this->view->user = $user->user->username;
> 
> I receive the following note when running this code:
> 
> Notice: Trying to get property of non-object in......
> 
> which basically mean that the object is no longer present in the session.
> 
> can someone please explain to me what i'm doing wrong?
> 
> is it my php setup that is wrong?
> session.auto_start off
> session.save_handler files
> session.use_cookies on.
> 
> if other relevant info is needed please let me know.
> 
> thanx in advance for any help.
> 
> kim
> 
> 
> 
> 
> 
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Session-questions-tp24199670p24199711.html
Sent from the Zend Framework mailing list archive at Nabble.com.

Reply via email to