| 제목 | session 만료 후 초기화면에 관한 질문 | ||
|---|---|---|---|
| 카테고리 | CI 2, 3 | ||
| 글쓴이 | 미나리나물 | 작성시각 | 2017/08/29 11:02:38 |
|
|
|||
|
ci 책으로 게시판을 만들고 있는 학생입니다. 그런데 로그 아웃을 누르면 맨 처음 화면으로 정상적으로 로딩 되는데, 시간이 지나 세션이 스스로 만료되면 주소가 이상하게 나옵니다. 제가 사용하는 테스트 주소는 인데, 로그 아웃 클릭 시 저 주소로 정상 도달 합니다만, 자동 만료되면 주소가 http://192.168.10.10/auth/auth 로 나타납니다. 이 설정은 어디서 바꿔 줄 수 있는지요? |
|||
| 다음글 | 검색기능시에 url은 변경되지만, 검색한 조건에 있는 ... (3) | ||
| 이전글 | input에서 사용하는 get()과 db에서 사용하는 ... (6) | ||
|
변종원(웅파)
/
2017/08/29 11:23:39 /
추천
0
컨트롤러와 config.php 파일의 $config['base_url'] 부분 올려주세요
|
|
미나리나물
/
2017/08/29 11:29:53 /
추천
0
$config['base_url'] = '';
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* 사용자 인증 컨트롤러
**/
class Auth extends CI_Controller {
function __construct() {
parent::__construct();
$this -> load -> model('auth_m');
$this -> load -> helper('form');
$this -> load -> helper(array('url', 'date'));
$this -> load -> helper('url');
}
public function index() {
$this -> login();
}
/**
* 로그인 처리
**/
public function login() {
$this -> load -> library('form_validation');
$this -> load -> helper('alert');
$this -> form_validation -> set_rules('username', '아이디', 'required|alpha_numeric');
$this -> form_validation -> set_rules('password', '비밀번호', 'required');
echo '<meta http-equiv="content-type" content="text/html; charset=utf-8" />';
if ($this -> form_validation -> run() == TRUE) {
$auth_data = array(
'username' => $this -> input -> post('username', TRUE),
'password' => $this -> input -> post('password', TRUE),
);
$result = $this -> auth_m -> login($auth_data);
if ($result) {
$newdata = array(
'username' => $result -> username,
'userlevel' => $result -> userlevel,
'logged_in' => TRUE
);
$this -> session -> set_userdata($newdata);
// $this -> load -> view('main/main_v');
redirect("/main/domain_w",'refresh');
} else {
alert('아이디 또는 비밀번호를 확인 해 주세요.', '/auth');
exit;
}
} else {
$this -> load -> view('auth/login_v');
}
}
public function logout() {
$this -> load -> helper('alert');
$this -> session -> sess_destroy();
echo '<meta http-equiv="content-type" content="text/html; charset=utf-8" />';
alert('로그아웃 되었습니다.', '/auth');
exit;
}
}
?>
|
|
변종원(웅파)
/
2017/08/29 14:41:47 /
추천
0
로그인 체크하는 부분은 어떻게 되어 있을까요? 세션이 없으면 로그인 주소로 리다이렉트 할텐데 거기가 문제일거 같네요. |
|
미나리나물
/
2017/08/29 15:37:49 /
추천
0
세션이 없어질 때 설정 부분은 어디에서 찾을 수 있을까요?
|
|
변종원(웅파)
/
2017/08/29 15:43:06 /
추천
0
미나리나물/ 지금 책이 없어서 정확한 답변은 힘들지만 board 컨트롤러의 remap이나 write 메소드에 로그인 체크하는 부분이 있을 겁니다.
|
|
미나리나물
/
2017/08/29 17:52:18 /
추천
0
현재 몸통은 아래와 같습니다.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Main extends CI_Controller {
function __construct() {
parent::__construct();
$this -> load -> database();
$this -> load -> model('main_m');
$this -> load -> helper(array('url', 'date'));
$this -> load -> helper('url');
$this -> load -> helper('alert');
}
public function index()
{
$this->load->view('main/domain_w');
}
public function _remap($method)
{
$this -> load -> view('header_v');
if ( $this -> session -> userdata('userlevel') == "0" ) {
$this -> load -> view('nav_admin_v.php');
} else {
$this -> load -> view('nav_user_v.php');
}
if (method_exists($this, $method)) {
$this -> {"{$method}"}();
}
$this -> load -> view('footer_v');
}
public function domain_w() {
$this -> load -> view('main/main_v');
}
}
/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */
|
|
미나리나물
/
2017/08/29 17:55:23 /
추천
0
크아아아압!! 찾았습니다. 헤더에 있는 아래 부분이 문제 였습니다.
<?php if (@$this -> session -> userdata('logged_in') == TRUE) { ?>
<div class="hdiv logout"><h3><?php echo $this -> session -> userdata('username'); ?></h3><span>님 환영합니다.</span><a href="/auth/logout" class="btn btn-info">로그 아웃</a></div>
<?php
} else {
redirect("/auth",'refresh');
}?>
여기서 redirect 부분에 "/auth"를 "/"로 바꾸니 정상 동작 합니다. |