在codeigniter中,我们可以定义应该在浏览器中显示的URL。我有一个登录页面,当凭据正确给出时,该页面进展顺利。如果凭据错误,我需要在同一页面中显示错误消息。为此,我做了以下事情。
<div style="<?php echo ($status==='err')?'display:block':''?>" class="form-login-error">
<h3>Invalid login</h3>
<p>Please enter correct email and password!</p>
</div>
和
$data['status'] = (isset($_GET['status']))?$_GET['status']:true;
在控制器的索引函数
中if($userdata['status'] == 'success')
{
if(!empty($userdata['userdet']))
{
$this->session->set_userdata($userdata['userdet']);
redirect('dashboard');
}
}else{
redirect('login?status=err');
}
代码效果很好。但我怀疑是否可以改变网址模式?它现在显示loclhost / myproject / login?status = err.Can我将其更改为localhost / myproject / loginerror?我试图在路由中定义,但它显示页面未找到错误。提前致谢。
答案 0 :(得分:1)
通过在这里使用URL的param,你做了一件非常简单的事情。 我建议使用CI session Flashdata。使用Flashdata的好处是会话变量仅针对下一页维护,然后会话变量自动清除,因此在我们需要向用户显示某些消息时非常有用。
将您的代码更改为以下内容:
> File Name: Check_Point_SNX_R71HFA1_For_Windows_800005013.msi
> Product: SSL Network Extender Version R71 Minor Version HFA 01
> OS: Windows, Windows 7 Build Number
> MD5: 381dd25826c43f97e3f36308368fa8e6
> Size: 722.43 KB
> Date Published: 12/31/2009
并在您的控制器中:
<div style="<?php echo ($this->session->flashdata('error') )?'display:block':''?>" class="form-login-error">
<h3>Invalid login</h3>
<p>Please enter correct email and password!</p>
</div>
答案 1 :(得分:0)
使用codeigniter application / config / routes.php
$路线[&#39;的myproject /登录/(:任何)&#39;] =&#34;的myproject /登录/ $ 1和#34 ;;
你可以在控制器的操作中保存参数值。