在codeigniter中定义自定义URL

时间:2015-09-18 07:36:20

标签: php codeigniter

在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?我试图在路由中定义,但它显示页面未找到错误。提前致谢。

2 个答案:

答案 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 ;;

你可以在控制器的操作中保存参数值。