2015-06-19 43 views
0

我正在使用CodeIgniter控制器功能。 (例如)如何使用角度js重定向到CodeIgniter控制器

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 
class Me extends CI_Controller { 
    public function __construct() 
     { 
      parent::__construct(); 
      if (is_logged_in()){if (is_admin()) { redirect('login'); }} 
      else { redirect('login');} 
     } 
    public function change_password() 
    { 
     $id=$this->session->userdata['user_data']['id']; 
     $data = json_decode(file_get_contents("php://input")); 

     $my_data=array(
      'pass'=>$data->pass, 
      'new_pass'=>$data->new_pass, 
      ); 
     $result=$this->vanesh_model->change_pass($id,$my_data); 
     if($result==1) 
     { 
      $arr = array('msg' => "Password changed successfuly.", 'error' => ''); 
      $jsn = json_encode($arr); 
      print_r($jsn); 
     } 
     else if($result==2) 
     { 
      $arr = array('msg' => "", 'error' => 'Old Password is Invalid'); 
      $jsn = json_encode($arr); 
      print_r($jsn); 
     } 
     else if($result==3) 
     { 
      $arr = array('msg' => "", 'error' => 'Sorry, Password change failed'); 
      $jsn = json_encode($arr); 
      print_r($jsn); 
     } 
    } 
} 
?> 

恐怕采用了棱角分明的会话服务的,所以我要保持会话只CI。我在我的应用程序中所做的只是在登录时添加,更新和删除。而且我正在使用存储在会话中的信息。考虑一下情况,假设我已经登录并做了一些事情,并肩作战:我使用浏览器工具销毁会话。现在我继续进行应用程序(执行如下操作:更改密码)。我有/保留了错误信息,成功信息,确定。如果会话关闭,它会给出错误信息。但不是错误消息,我想重定向到LOGIN页面(使用页面刷新)。 注意:对于CI登录控制器,我没有使用角度js。我只有登录后才使用angularjs。

  • 如果通过打开新选项卡我销毁会话,并回到应用程序的选项卡:我能够执行任务(可能与错误,)。如果会话关闭,我在浏览器的控制台中看到:http://localhost/ums/login 这是因为CI构造函数(请查看代码)。

回答

0

你应该尽可能地分开角度和CI,因为两者都有视图控制器会造成混乱。相反,你应该将CI放在一个单独的文件夹中,例如,将其称为api,然后,您需要从CI中获取的任何内容都应该从带有ajax调用的角度进行处理。

我前段时间做了一个小型web应用程序,这似乎是组织代码的最佳方式。 从那时起角度几乎没有更新,所以如果有更好的方法,请让我知道

0

已解决。 使用的javascript函数。 每次通过http请求检查会话。如果响应来到“1”。意味着重定向登录为:

/* function for checking logged-in and role */ 
function check_session() 
{ 
    $.get("servercontroller/check_session", function(data, status){ 
     if(data=="1") /* error 1 => un-athorized user */ 
     { 
      window.location.href="/login-page-url"; 
     } 
     }); 
} 
相关问题