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>
979

Answer

Solution:

Load session library in controller or in an autoload file:
$this->load->library('session');

174

Answer

Solution:

Replace this function in your model:

     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();

            if($sql->num_rows() == 1)
            {
                return $sql->result();
            }else{
                return false;
            }

        }

People are also looking for solutions to the problem: javascript - Get the url parameter or the part of the url after the question mark (?) of an included php file

Source

Didn't find the answer?

Our community is visited by hundreds of web development professionals every day. Ask your question and get a quick answer for free.

Ask a Question

Write quick answer

Do you know the answer to this question? Write a quick response to it. With your help, we will make our community stronger.

Similar questions

Find the answer in similar questions on our website.