登录codeigniter后将URL重定向到请求的页面

时间:2017-06-13 07:51:06

标签: php codeigniter

我在登录时遇到问题。当我点击一个链接,如果我没有登录,它会将我重定向到登录页面,成功登录后,它应该重定向我请求的网址,但它将我重定向到个人资料页面。 这是我的视图文件:

<!--Left cols-->
<?php error_reporting(0);?>
<div class="col-lg-8 col-sm-8 col-md-8">
<div class="reg-form">
<h2>Member's Login</h2>
<title>Login</title>
<form method="post" action="<?php echo base_url();?>index.php/register_step1/login">

<div class="row">
<label for="name">Email</label>
<span><i class="icon-name"></i><input type="email" placeholder="example@gmail.com" required id="name" name="email"/></span>
</div>

<div class="row">
<label for="pass">Your Password</label>
<span><i class="icon-pass"></i><input type="password" placeholder="*************" id="pass" required name="password"/></span>
</div>
<!--input type="hidden" name="redirurl" value="<?php echo $_SERVER['HTTP_REFERER']; ?>" /-->
<div class="row">
Forgot Password <a href="">click here</a> / <a href="">Register</a> new user
</div>

<div class="row">
<input type="submit" value="Login" name="submit"/>
</div>

</form>
</div>
</div>
<?php $this->load->view("home_template/rightbar");?>

这是我的控制者:

public function login(){
        $this->load->model("User_model");
        $this->load->library('user_agent');

        if(isset($_POST["submit"])){ 
            //$url = $this->input->post("redirurl");
                $data = $this->User_model->login();
                if($data){
                    foreach($data as $dta){
                        $id = $dta->id;
                        $email = $dta->email;
                    }

                    $session_array = array("id"=>$id,"email"=>$email);
                    $this->session->set_userdata("logged_by_login",$session_array);

                    redirect("profile");

                }
            }
                else{

                }


        $data["main_content"] = "login_view";
        $this->load->view("home_template/template",$data);
    } 

2 个答案:

答案 0 :(得分:0)

您可以像这样使用重定向。控制器可能无法获得正确的路径,

$this->load->helper('url');
redirect(base_url('profile'));

如果不起作用,请告诉我。

答案 1 :(得分:0)

  • 对于页面重定向,我们在codeigniter中使用了redirect()语句。 redirect()使用重定向将用户发送到指定的网页 标题声明。

  • redirect()语句驻留在URL帮助器中,因此我们需要加载url helper:

    $这 - &GT;负载&GT;辅助(&#39; URL&#39);

  • 个人资料页面重定向我们编写下面的语句并将第一个参数传递为&#34;个人资料&#34;第二个参数是&#34;刷新/位置&#34;。

    <强>重定向(&#39;轮廓&#39;&#39;刷新&#39);

  • 重定向功能加载第一个指定的本地URI 函数调用的参数,使用指定的选项构建 在您的配置文件中。

  • 第二个参数允许开发人员使用不同的HTTP 命令执行重定向&#34; location&#34;或者&#34;刷新&#34;。

  • 根据Code Igniter文档:&#34;位置更快,但是 在Windows服务器上,它有时可能是一个问题。&#34;所以最好使用&#34;刷新&#34;作为第二个参数