我目前在一个使用ACL的zend框架网站上工作。
ACL工作正常,并使用DB来存储权限。到目前为止,我所做的是,在preDispatch中捕获用户想要去的地方,如果他们需要登录才能到达那里,页面将显示登录表单。我还捕获了用户是否提交了表单并存储了数据(位置和表单数据)。到目前为止还没有问题。
用户提交登录表单,然后我检查是否有位置发送它们,这里也没有问题,这是可行的。
但是,我希望能够提交原始表单数据,因为它们已经过身份验证--唯一的问题是,如果我将它们重定向到页面,调用:
$this->getRequest()->isPost()失败,因为它不是post请求。
我可以将用户转发到成功登录的页面,在preDispatch中设置$_POST到最初捕获的数据,这工程作为原始帖子仍然站,这工程,但我不认为是这样做的正确方法-特别是网址-显然显示的页面是正确的,表单已正确提交,但网址是登录过程。
显然,我可以从使用$this->getRequest()->isPost()进行更改,但由于有大量的内容需要更改,我希望不必这样做。
发布于 2010-11-01 21:40:02
通常的做法(在许多网站上都可以看到)是将表单数据和请求的操作存储在会话中,然后将用户重定向到登录页面。当登录被授权时,您读取会话中任何挂起的操作,重新加载表单,并使用会话中的数据填充它(之后从会话中正确清除任何挂起的操作)。用户只需再次单击Submit。
另一种方法是使用HttpClient并将数据作为POST一起提交。
https://stackoverflow.com/questions/4069302
复制相似问题