我正在完成我的任务中的购买系统,并试图通过使用会话在过程中存储数据来解决问题。
虽然我在Mozilla Firefox中遇到了问题,但由于某种原因我无法使用我创建的会话。毫无疑问,我一定是犯了某种错误。
流程如下:
用户填写表单 - >点击提交 - > [验证过程] - >用户评论确认页面
以下是控制器的相关代码:
public function indexAction() {
$this->gatewayForm = new Payment_Form_Gateway;
$save = $this->validate();
$this->view->gatewayForm = $save['form'];
$this->view->alert = $save['alert'];
}
public function validate() {
# get form
$form = $this->gatewayForm;
if ($this->_request->isPost()) {
# get params
$data = $this->_request->getPost();
# check validate form
if ($form->isValid($data)) {
$session = new Zend_Session_Namespace('formData'); // name space creation
$session->data = $data;
$this->_helper->redirector('confirm', 'gateway', 'payment');
} else {
$alert = array('Pay failed');
}
$form->populate($data);
}
return array('form' => $form, 'alert' => empty($alert) ? null : $alert );
}
public function confirmAction() {
$this->_helper->viewRenderer->setNoRender(true); // disable std. view
$session = new Zend_Session_Namespace('formData');
$data = $session->data;
if(isset($data)) {
$this->_helper->viewRenderer->setNoRender(false);
} else {
$this->_helper->redirector('index', 'gateway', 'payment');
}
}
在Firefox的confirmAction中出现问题,会话命名空间似乎是空的?虽然在Safari,Chrome,IE等中不会出现这种情况。
提前致谢。
答案 0 :(得分:0)
我重新安装了Firefox并删除了配置和缓存文件,这些文件实现了神奇。问题解决了!