2017-06-13 67 views
1

登录时遇到问题。当我点击一个链接,如果我没有登录比它会重定向我登录页面,并在成功登录后,它应该重定向我请求的网址,但它会重定向到配置文件页面。 这里是我的视图文件:登录后重定向url到请求的页面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="[email protected]" 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); 
    } 
+0

尝试把'退出;'后'重定向(“个人资料”);'线 –

+0

感谢@ NISHANT索兰奇你没有得到我的观点,请阅读一次 –

+0

**请求的页面**表示什么?你想将用户重定向到**上次访问的页面**? –

回答

0

您可以使用重定向这样。可能是控制器没有得到正确的路径,

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

让我知道,如果它不起作用。

+0

为什么你可以在重定向语句中传递base_url('profile')?你可以简单地通过重定向ex前面的配置文件。重定向( '轮廓', '刷新'); –

+0

检查鳕鱼点火器中的redirect(),base_url()/ site_url()概念。 –

+0

$ this-> load-> helper('url'); redirect(base_url('profile)); //此行给出语法错误,请检查 –

0
  • 对于页面重定向我们在codeigniter中使用了redirect()语句。 redirect()使用重定向 头部语句将用户发送到指定的网页。

  • 重定向()语句驻留在URL帮手,所以我们需要加载的url帮手:

    $这个 - >负载>帮手( 'URL');

  • 配置文件页面重定向我们写波纹管语句并将第一个参数作为“Profile”传递,第二个参数是“refresh/location”。

    redirect('profile','refresh');

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

  • 第二个参数允许开发人员使用不同的HTTP 命令执行重定向“位置”或“刷新”。

  • 根据Code Igniter文档:“位置更快,但在Windows服务器上有 ,它有时可能会出现问题。”所以最好使用“刷新”作为第二个参数

相关问题