아약스는 로그인 컨트롤러가 아니라 HTML보다 뭔가 기계 판독 (JSON/XML)을 반환 의미합니다.
컨트롤러가 세션 변수를 설정하기 만하면됩니다.
class Login extends Controller {
function __construct() {
parent::Controller();
$this->load->model('user_m');
}
function json_login() {
$user = $this->user_m->get_user($_POST['username']);
if($user->password == md5($_POST['password'])) {
$this->session->set_userdata('username',$user->username);
print json_encode($this->user);
}
else {
print json_encode(FALSE);
}
return;
}
function logout() {
$this->session->destroy();
redirect('/theloginpage');
}
}
이 같은 것을 일할 수있는 자바 스크립트 AJAX 호출을 위해 jQuery를 사용하는 가정 다음 '사용자 이름이'세션에서 설정되어있는 경우
$('#login_form').submit(function(event) {
event.preventDefault();
$.ajax({
type:"POST",
data:$(this).serialize(),
dataType:"json",
url:"/login/json_login",
success: function(data) {
if(data['username'] != null) {
$(this).append('<p>You are now logged in</p>');
reload_table_data();
}
else if(data == flase){
$(this).append('<p>Fail whale, wrong username or password</p>');
}
}
});
}
지금 데이터 체크를 표시 할 때.또한 세션을 파괴하는 로그 아웃 메소드를 만드는 것을 잊지 마십시오. 테이블 데이터를 HTML 스 니펫으로 반환하여 DOM 또는 json/xml 루프에 직접 삽입 할 수 있습니다.
로그인 폼은 페이지의 아무 곳에 나 표시 될 수 있으며 대화 상자를 제공 할 jquery, dojo, prototype 등을위한 라이브러리가 많이 있습니다.