ajax - Failed To start Session Using PHP and Codeigniter
251
I have problem with starting session Using codeigniter framework trying to make a login but I can't login.
this is my controller code
public function login()
{
if($this->input->post("login"))
{
$this->load->library('form_validation');
$this->form_validation->set_rules("username","UserName",'required|min_length[3]|max_length[30]|alpha');
$this->form_validation->set_rules("password","password",'required|min_length[3]|max_length[30]');
if ($this->form_validation->run())
{
$username=$this->input->post("username");
$password=$this->input->post("password");
$this->load->model("usersmodel");
if($this->usersmodel->mainlogin($username,$password))
{
$session_data=array(
'username' => $username
);
$this->session->set_userdata($session_data);
redirect(site_url("Users/dashboard"));
}else{
$this->session->set_flashdata('error', 'Error With loGIN ');
redirect(site_url("Users/login"));
}
}else{
//error for validation
}
}
$data['pagetitle']="Log in";
$this->load->view("users/login",$data);
}
public function dashboard()
{
if($this->session->userdata('username')==!'')
{
echo"welcom";
}
$this->load->model("usersmodel");
$this->load->view("template/admin/dashboard");
}
this is my model
public function mainlogin($username,$password)
{
/*
$this->db->select('*');
$this->db->from("users");
$this->db->where('username',$username);
$this->db->where('password',$password);
$sql=$this->db->get();
return $sql->row();
*/
$this->db->where('username',$username);
$this->db->where('password',$password);
$sql=$this->db->get('users');
if($sql->num_rows() >0)
{
return true;
}else{
return false;
}
this is my view
<div >
<div id="container">
<div >
<div ><label ><?php echo validation_errors()?></label></div>
<form method="post" action="<?php echo site_url("Users/add")?>" enctype="multipart/form-data">
<div >
<label for="recipient-name" >Full Name :</label>
<input type="text" name=" fullname" id="fullname" placeholder="please insert fullname" autocomplete="off" required="required">
</div>
<div >
<label for="recipient-name" >UserName :</label>
<input type="text" name="username" id="username" placeholder="please insert user name" autocomplete="off" required="required" >
</div>
<div >
<label for="message-text" >Password:</label>
<input type="password" name="password" id="password" placeholder="please insert yout password" autocomplete="new-password" required="required" >
<i aria-hidden="true"></i>
</div>
<div >
<label for="recipient-name" >Email :</label>
<input type="text" name="email" id="email" placeholder="please insert email" autocomplete="off" required="required" >
</div>
<div >
<label for="recipient-name" >User Type :</label>
<select name="groubid" >
<option value="1">Administartor</option>
<option value="0">User</option>
<option value="2">Maker</option>
<option value="3">cheker</option>
</select>
</div>
<div >
<label for="exampleInputFile">Image :</label>
<input type="file" name="image" id="image">
</div>
<button type="submit" name="adduser" value="adduser" >add</button>
</form>
</div>
</div>
</div>
Answer
Solution:
Load session library in controller or in an autoload file:
$this->load->library('session');
Answer
Solution:
Replace this function in your model: