Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将会话id存储在codeigniter中的另一个表中_Mysql_Codeigniter - Fatal编程技术网

Mysql 将会话id存储在codeigniter中的另一个表中

Mysql 将会话id存储在codeigniter中的另一个表中,mysql,codeigniter,Mysql,Codeigniter,我有一个供应商登录页面。供应商登录后,他们重定向到供应商仪表板。在那里,我通过仪表板链接获取供应商id。我在仪表板页面中获取特定的供应商名称 在供应商仪表板中..供应商有一个名为“候选人”的选项卡..当他们单击该选项卡时,会重定向到“添加候选人”页面..因此,当供应商提交表单时,我希望将该供应商id存储在“候选人”表中 在候选者表中有一列名为vendor\u id.。提交后,我想为该特定候选者存储该vendor\u id 我正试着这么做…从过去的6个小时…它仍然没有储存。。 问题是我不知道怎么做

我有一个供应商登录页面。供应商登录后,他们重定向到供应商仪表板。在那里,我通过仪表板链接获取供应商id。我在仪表板页面中获取特定的供应商名称

在供应商仪表板中..供应商有一个名为“候选人”的选项卡..当他们单击该选项卡时,会重定向到“添加候选人”页面..因此,当供应商提交表单时,我希望将该供应商id存储在“候选人”表中

在候选者表中有一列名为vendor\u id.。提交后,我想为该特定候选者存储该vendor\u id

我正试着这么做…从过去的6个小时…它仍然没有储存。。 问题是我不知道怎么做

登录页面:

if($this->input->post())
{
$user = $this->LoginModel->login($this->input->post());
if(count($user)>0)
{
$data = array(
'user_id' => $user['user_id'],
'first_name' => $user['first_name'],
'email' => $user['email'],
'password' => $user['password']
);                   
$this->session->set_userdata($data);
if($user['user_type_id'] == '1')
{
// redirect(base_url('index.php/Login/vendor_dashboard/'.$data['first_name']));
redirect(base_url('index.php/Login/vendor_dashboard/'.$this->session->user_id));                
} 
elseif($user['user_type_id'] == '2')
{
// (base_url('index.php/Login/user_dashboard/'.$this->session->user_id));
}
else
{
redirect(base_url('index.php/Login/dashboard'));
}
}
仪表板:

<?= ($this->session->first_name)? $this->session->first_name : "" ?>
有人能帮我吗


提前感谢。

您的问题与此有何关联。不管怎样,这里是你能做的。首先,使用用户控制器进行身份验证,或者将其命名为登录,或者任何您喜欢的方式

class Users extends CI_Controller
{

public function __construct()
{
    parent::__construct();
    $this->load->model('user_model');
}
public function index()
{
    $data['title']='Vendors Application';
    if($_POST)
    {
        $user=$this->user_model->checkUser($_POST);
        if(count($user)>0)
        {
            $this->session->set_userdata($user);
            redirect(base_url().'dasboard/vendor');
        }
    }
    else
    {
        $this->load>view('login',$data);
    }

 }
}
在用户模型中的数据库中检查用户的功能如下

public function checkUser($data)
{
    $st=$this->db->select('*')->from('users')
        ->WHERE('email',$data['email'])
        ->WHERE('password',md5(sha1($data['password'])))
        ->get()->result_array();
    if(count($st)>0)
    {
        return $st[0];
    }
    else
    {
        return false;
    }
}
登录并重定向到dashboard后,使用dashboard Controller或任何您喜欢的名称添加候选人

class Dashboard extends CI_Controller
{

public function __construct()
{
    parent::__construct();
    $this->load->model('user_model');
}
public function vendor()
{
    $data['title']='Vendor Dashboard';

    if($_POST)
    {
        //validation
        $this->user_model->addCandidate($_POST);
        $data['success']='Candidate Added Successfully';
        $this->load->view('vendor_dashboard',$data);
    }
    else
    {
        $this->load->view('vendor_dashboard',$data);
    }

 }
}
用户模型中添加候选对象的功能如下所示

public function addCandidate($data)
{
    $candidate=array(
        'user_id'=>$this->session->userdata['id'],
        'first_name'=>$data['first_name'],
        'last_name'=>$data['last_name'],
        'address'=>$data['address'],
        'contact'=>$data['contact']
    );
    $this->db->insert('candidates',$candidate);
    return $this->db->insert_id();
}
请记住,当您将供应商id登录并将其记录存储在会话中时,您的会话中已经有供应商id,因此无需向控制器url发送任何id来加载仪表板


我希望您了解CI表单验证,如果没有,请在仪表板中找到它。我喜欢这样做。获取会话userdata就像$this->session->userdata'firstname'一样。也请阅读此“使用完整”加载模型和此确定。那么我们如何将会话id存储在另一个表中???@user3663不使用md5使用密码和