好的,我有一个网页应用程序,其页面名称为“联系我们”。就像所有联系我们页面一样。输入字段为:姓名,学校/公司,电子邮件,消息。
因此,一旦用户填写了所有必需的信息并点击了提交,他/她将被重定向到新页面,此页面只是一条消息“消息已发送”或“消息发送失败”。
我们说这是用户点击提交按钮时的URL:localhost / appname / controller / messagesent
在其他网站中,如果您尝试键入邮件页面的网址,则无法访问该网址。
所以我希望只有在点击提交按钮时才能访问'messagesent'页面。但是,如果由于某种原因用户尝试通过在URL中键入来访问“messagesent”页面,他/她将被重定向到index.ctp。
我该怎么做?
谢谢!
编辑:
所以这是联系我们页面的部分代码:
if($this->Contact->save($data)) {
$this->redirect(array('controller' => 'websites', 'action' => 'messagesuccessful'));
} else{
$this->redirect(array('controller' => 'websites', 'action' => 'messagefailed'));
}
这是messagesuccessful()的代码:
if($this->request->is('post')){
$this->layout = 'website';
}else{
$this->redirect(array('action' => 'index'));
}
答案 0 :(得分:0)
试试这个..
function contactus()
{
if($this->request->is('post'))
{
if($this->Contact->save($data)) {
$this->messagesent();
} else{
$this->redirect(array('controller' => 'websites', 'action' => 'messagefailed'));
}
}
else{
// put the code here if you access the function directly (not posting any data)
}
}
使其成为私人功能,因此没有人可以直接访问它。
private function messagesent()
{
$this->render('messagesent', 'website');
}
它只是使用'网站'呈现您的messagesent文件。布局。确保将messagesent.ctp文件保存在views文件夹下的网站文件夹中。
谢谢..!