2012-02-24 4 views
0

私は以下の関数searchAction()とrecentsearchAction()を持っています。配列変数である$ rowとして私のクッキー値を保存します。問題はrecentsearchAction()メソッドでクッキーの値を取得したいということです。それを得る方法。 plsヘルプ。私はZendで全く新しいです。別の関数またはページにZend_http_cookieの値を取得する方法

パブリック関数searchAction() {

$form=new Application_Form_Search();    

    $this->view->form = $form;   

    if($this->getRequest()->isPost()){ 

     $formData = $this->getRequest()->getPost();    

     if($form->isValid($formData)){ 

      $uname=$form->getValue('uname');     

      $search = new Application_Model_DbTable_Hobbies(); 

      $row=$search->searchHobby($uname);   

      $cookie = new Zend_Http_Cookie('cookiename',$row,'localhost',time() + 7200);   

      echo $cookie->getName(); 

      echo $cookie->getValue(); 

      echo $cookie->getDomain(); 

      echo $cookie->getPath(); 

      echo $cookie->getExpiryTime();         

      $this->view->search=$row;                         

     } 
    } 
}  

public function recentsearchAction() 
{     

}  

答えて

0

はこれを試してみてください。有効期限を秒単位で指定することができます。

0

私はZFでデータを永続化するために知っている最も簡単な方法は、これはあなたがそれを設定解除するまで、データを保存するか、それを上書きする、Zend_Session_Namespaceにそのデータをダンプすることです。 Zend_sessionは文字列、オブジェクト、配列を受け付けます。

基本的な使い方:未設定のデータへ

//save data to namespace named cookie 
$sesion = new Zend_Session_Namespace('cookie'); 
//namespace = cookie, data = cookieData 
$session->cookieData = $cookieData; 

//get data from namespace in another controller or action 
//every time you need to access the namespace you have instantiate Zend_Session_Namespace 
//I usually put a line in init() of each controller assigning it to a protected property 
protected $_sesion = new Zend_Session_Namespace('cookie'); 
//access array or objects parts in session in normal ways 
//assuming session is protected/private property 
echo $this->_session->cookieData->username;//if object 
echo $this->_session->cookieData['email'];//if array, I think 
echo $this->_sesion->cookieData; //if single string 

でZend_Session_Namespace

Zend_Session::namespaceGet('cookie'); 
Zend_Session::namespaceUnset('cookie'); 

では、私は通常のアクセスを簡単にするために$data = (object)array('data')をオブジェクトとして私が保存したい配列をキャスト。それはあなたの60秒のデータを保持します

$session=Zend_Session_Namespace("cookie"); 
echo "User Name : ".$session->username; 
echo "Password : ".$session->email; 

:よう

$session=Zend_Session_Namespace("cookie"); 
$session->setExpirationSeconds(60); 
$session->username; 
$session->email; 

今、あなたは任意のページで、このセッションの名前空間を使用することができます。

+0

** thanxxxxx .... ** – Sky

関連する問題