Я новичок в Codeigniter, и я создал систему входа в систему с jquery в Codeigniter.но я застрял с проблемой сессии.Когда я отправлю логин от меня, я буду отлично работать и прекрасно создаю сеанс, но когда он будет перенаправлен на следующую страницу после входа в систему, сеанс будет автоматически уничтожен, и он все время будет возвращаться на страницу входа.
Может ли кто-нибудь помочь, что делать в этом ??Мой код ниже
Контроллер администратора
<?php
class Admin extends CI_Controller {
function index()
{
$data['title'] = 'Admin Panel';
$this->load->helper('auth');
if(is_admin_loggedin(0)){ // Check if is login
//To display Dashboard Page
$this->load->view('admin/index', $data);
}else{
//To display Login Page
$this->load->view('admin/login/index', $data);
}
}
function login_action(){
$this->load->model('login_model');
$query = $this->login_model->check_login();
if($query){
$data = array(
'adminid' => $query[0]['AdminID'],
'is_logged_in' => true
);
$this->load->library('session');
$this->session->set_userdata($data);
print_r($this->session);
exit;
//redirect('admin');
$success = true;
$success_redirect = true;
$success_msg = site_url('admin');
$error = false;
$error_msg = '';
}else{
$success = false;
$success_redirect = false;
$success_msg = site_url('admin');
$error = true;
$error_msg = 'Error, Wrong username or password!';
}
$passstring = array(
'success' => $success,
'success_msg' => $success_msg,
'success_redirect' => $success_redirect,
'error' => $error,
'error_msg' => $error_msg
);
echo json_encode($passstring);
}
}
?>
Я создал вспомогательный файл аутентификации для проверки, установлен или нет логин.
auth_helper.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
if ( ! function_exists('is_admin_loggedin'))
{
function is_admin_loggedin($reval){
// Get current CodeIgniter instance
$CI =& get_instance();
// We need to use $CI->session instead of $this->session
$adminid = $CI->session->userdata('adminid');
$is_logged_in = $CI->session->userdata('is_logged_in');
if($reval == 1){
return $CI->session;
}else{
if(!isset($is_logged_in) || $is_logged_in != true || !isset($adminid) || $adminid != '')
{
return false;
}else{
return true;
}
}
}
}
?>
login_model.php
<?php
class Login_Model extends CI_Model{
public function __construct()
{
$this->load->database();
}
public function check_login(){
//$this->form_validation->set_rules('username', 'User Name', 'trim|required');
//$this->form_validation->set_rules('password', 'Password', 'trim|required');
//if($this->form_validation->run() == FALSE){
$this->db->where('UserName', $this->input->post('username'));
$this->db->where('Password', md5($this->input->post('password')));
$this->db->select('AdminID');
$query = $this->db->get('admin');
if($query->num_rows == 1)
{
return $query->result_array();
}
//}
}
}
?>
Мой файл просмотра Код
<form action="<?php echo base_url();?>index.php/admin/login_action" method="post" name="LoginAdmin" id="LoginAdmin" >
<div class="error-container hide"></div>
<div class="login-box-row-wrap corners">
<label for="username">Username:</label><input type="text" id="username" value="" name="username" class="input-1"/>
</div>
<div class="login-box-row-wrap corners">
<label for="password">Password:</label> <input type="password" id="password" value="" name="password" class="input-1 password"/>
</div>
<div class="login-box-row corners">
<input type="checkbox" name="remember" id="field-remember"/> <label for="field-remember">Remember me?</label>
<input type="submit" name="submitfrm" value="Login" id="submit"/>
</div>
</form>
<script type="text/javascript" language="javascript">
$(document).ready(function (){
var LoginID = '#LoginAdmin';
$(LoginID).submit(function(){
var errorselector = LoginID+' .error-container';
$(errorselector).html('').hide();
var username = $('#username').val();
var paossword = $('#password').val();
var isValid = 0;
var errmsg = '';
if(!checkblank(username) || !checkblank(paossword)){
errmsg = 'Please fill all the fields.';
isValid = 1;
}
if(isValid == 0){
$('.loader').show();
var urlred = $(this).attr('action');
$.ajax({
type: "POST",
url: urlred,
data: $(this).serialize(),
dataType: "json",
success: function(msg){
console.log(msg);
$('.loader').hide();
if (msg.success == false && msg.error == true) {
if(msg.error_msg != ''){
errormsg = msg.error_msg;
}else{
errormsg = 'Error, Something Worong';
}
$msgdis = '<div class="login-box-error-small corners"><p>'+errormsg+'</p></div>';
$(errorselector).html($msgdis).slideDown('slow');
}else if (msg.success == true && msg.error == false) {
if(msg.success_redirect == true){
window.location = msg.success_msg;
}else{
$msgdis = '<div class="login-box-succes-small corners"><p>'+msg.success_msg+'</p></div>';
$(errorselector).html($msgdis).slideDown('slow');
}
}
$(this).find('button.submitbutton').attr('disabled', '');
},
error: function(){
$('.ui-dialog-titlebar #ui-dialog-title-dialog').html('Error');
$('#dialog_text').html("There was an error submitting the form. Please try again.");
$('#dialog').dialog('open');
$(this).find('button.submitbutton').attr('disabled', '');
}
});
}else{
$msgdis = '<div class="login-box-error-small corners"><p>Error, '+errmsg+'</p></div>';
$(errorselector).html($msgdis).slideDown('slow');
}
//make sure the form doesn't post
return false;
});
});
</script>
Спасибо