Ich habe ein Projekt in Codeigniter erstellt. Mein Problem ist, wenn ich mich anmelde, Auth-Controller zeigt den Wert an, der in Sitzung $ this-> session-> userdata ("logged_in") gesetzt ist, aber es wird nicht zum Dashboard umgeleitet.Sitzung ist nicht nach Umleitung in Codeigniter
Ich habe auch die PHP-Version auf dem Live-Server von PHP 7.1
zu PHP 5.6
geändert, aber es funktioniert immer noch nicht. Session funktioniert perfekt auf lokalen Server mit XAMPP aber nicht funktioniert auf Live-Server
Auth_model
public function Authentification() {
$notif = array();
$email = $this->input->post('email',TRUE);
$password = Utils::hash('sha1', $this->input->post('password'), AUTH_SALT);
$this->db->select('*');
$this->db->from('users');
$this->db->where('email', $email);
$this->db->where('password', $password);
$this->db->limit(1);
$query = $this->db->get();
if ($query->num_rows() == 1) {
$row = $query->row();
if ($row->is_active != 1) {
$notif['message'] = 'Your account is disabled !';
$notif['type'] = 'warning';
} else {
$sess_data = array(
'users_id' => $row->users_id,
'first_name' => $row->first_name,
'email' => $row->email
);
$this->session->set_userdata('logged_in', $sess_data);
}
} else {
$notif['message'] = 'Username or password incorrect !';
$notif['type'] = 'danger';
}
return $notif;
}
Auth Controller
class Auth extends CI_Controller {
function __construct() {
parent::__construct();
Utils::no_cache();
if ($this->session->userdata('logged_in')) {
redirect(base_url('dashboard'));
exit;
}
}
public function index() {
redirect(base_url('home'));
}
public function login() {
$data['title'] = 'Login';
$this->load->model('auth_model');
if (count($_POST)) {
$this->load->helper('security');
$this->form_validation->set_rules('email', 'Email address', 'trim|required|valid_email|xss_clean');
$this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean');
if ($this->form_validation->run() == false) {
// $data['notif']['message'] = validation_errors();
// $data['notif']['type'] = 'danger';
$status = validation_errors();
if ($this->input->is_ajax_request()) {
echo json_encode($status);
exit;
}
}
else {
$data['notif'] = $this->auth_model->Authentification();
// it show the result here but not redirect to dashboard
// print_r($this->session->userdata("logged_in"));
// die("auth/login");
}
}
if ($this->session->userdata('logged_in')) {
redirect(base_url('dashboard'));
exit;
}
/*
* Load view
*/
$this->load->view('includes/header', $data);
$this->load->view('home/index');
$this->load->view('includes/footer');
}
Armaturenbrett
class Dashboard extends CI_Controller {
var $session_user;
function __construct() {
parent::__construct();
$this->load->model('auth_model');
$this->load->helper('tool_helper');
Utils::no_cache();
if (!$this->session->userdata('logged_in')) {
redirect(base_url('home'));
exit;
}
$this->session_user = $this->session->userdata('logged_in');
}
/*
*
*/
public function index() {
$data['title'] = 'Dashboard';
$data['session_user'] = $this->session_user;
// print_r($this->session->userdata("logged_in")); //its show empty
$data['items'] = $this->auth_model->get_all_products();
$this->load->view('includes/header', $data);
// $this->load->view('includes/navbar');
$this->load->view('includes/navbar_new');
$this->load->view('dashboard/index');
$this->load->view('includes/footer');
}
Ich weiß nicht, warum Sitzung nicht eingestellt ist. Ich stecke seit einer Woche darin fest. Bitte hilf mir.
Was es zeigt stattdessen in Seite umleiten? Wenn Sie eine Sitzung erstellt haben, können Sie Sitzungscookies sehen. Wenn keine Sitzungscookies das Problem verursachen, wird in der Sitzung ein anderes Problem im Dashboard-Link erstellt. – Artier
Wie lautet die Sitzungseinstellung in Ihrer Datei /application/config.php? Sehen Sie Fehlermeldungen in der Protokolldatei? – ourmandave
Und wenn die Session-Library nicht automatisch geladen wird, laden Sie sie mit '$ this-> load-> library ('session');' – Artier