Mam następujące funkcje searchAction() i refreshsearchAction(). Przechowuję moją wartość cookie jako $row, która jest zmienną tablicową. Problem polega na tym, że chcę uzyskać wartość moich plików cookie w metodzie refreshsearchAction(). Jak to zdobyć. pls o pomoc. Jestem zupełnie nowy w Zend.

Funkcja public 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
J.K.A. 24 luty 2012, 14:48

2 odpowiedzi

Najlepsza odpowiedź

Spróbuj tego :

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

Teraz możesz użyć tej przestrzeni nazw sesji na dowolnej stronie, takiej jak:

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

Zachowa Twoje dane przez 60 sekund. Możesz podać maksymalnie czas wygaśnięcia w sekundach.

0
J.K.A. 16 maj 2012, 08:52

Najprostszym znanym mi sposobem utrwalenia danych w ZF jest zrzucenie tych danych do Zend_Session_Namespace , spowoduje to zachowanie danych do czasu ich usunięcia lub zastąpienia. Zend_session zaakceptuje łańcuchy, obiekty i tablice.

Podstawowe zastosowanie:

//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

Aby rozbroić dane w Zend_Session_Namespace

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

Zwykle rzutuję tablice, które chcę przechowywać jako obiekty $data = (object)array('data'), aby ułatwić dostęp.

0
RockyFord 24 luty 2012, 15:25