【问题标题】:codeigniter show image on headercodeigniter 在标题上显示图像
【发布时间】:2018-06-24 14:08:21
【问题描述】:

我使用了会话数据。但我想在数据库上做 sessiondata = 一些事情。例如

<a data-toggle="dropdown" class="dropdown-toggle" href="#">
                    <img alt="" src="<?php
                    if(($this->session->userdata('people_id')) == 'cosId') { echo base_url().'upload/customer/'.$this->session->userdata('people_img');} else{ echo base_url().'upload/user/'.$this->session->userdata('people_img');} ?>">
                    <span class="username"><?php echo $this->session->userdata('people_name'); ?>  <?php echo $this->session->userdata('people_surname'); ?></span>
                    <b class="caret"></b>
                </a>

(($this-&gt;session-&gt;userdata('people_id')) == 'cosId') 如何在其他目录中显示有关 sessiondata 的任何图像?

当客户登录可以看到自己的照片或当用户登录可以从不同的图像目录/根目录看到自己的照片。

我的用户数据控制器如下:

$username = $this->input->post('username');
            $password = $this->input->post('password');
            $user_data = $this->db->get_where('user', array('userUsername' =>$username,'userPass' => $password));
            $cus_data = $this->db->get_where('customer', array('cosUserName' =>$username,'cosPassword' => $password));
            if ($user_data->num_rows() > 0) {
                foreach ($user_data->result_array() as $row) {
                    $this->session->set_userdata('people_id',$row['userId']);
                    $this->session->set_userdata('people_name',$row['userName']);
                    $this->session->set_userdata('people_surname',$row['userSurname']);
                    $this->session->set_userdata('people_usertype',$row['userType']);
                    $this->session->set_userdata('people_username',$row['userUsername']);
                    $this->session->set_userdata('people_img',$row['userImg']);
                    $this->session->set_userdata('people_email',$row['userEmail']);
                    $this->session->set_userdata('people_status',$row['userStatus']);
                    $this->session->set_userdata('people_cdate',$row['userDate']);
                    $this->session->set_userdata('people_department',$row['userDepartment']);
                    $this->session->set_userdata('people_lang',$row['userLang']);
                    $this->session->set_userdata("logged_in", true);
                }
                // redirect to dashboard
                redirect("dashboard");
            }
            elseif ( $cus_data->num_rows() > 0) {
                foreach ($cus_data->result_array() as $row) {
                    $this->session->set_userdata('people_id',$row['cusId']);
                    $this->session->set_userdata('people_name',$row['cosName']);
                    $this->session->set_userdata('people_surname',$row['cosSurname']);
                    $this->session->set_userdata('people_username',$row['cosUserName']);
                    $this->session->set_userdata('people_img',$row['cosImg']);
                    $this->session->set_userdata('people_cname',$row['cosCName']);
                    $this->session->set_userdata('people_country',$row['cosCountry']);
                    $this->session->set_userdata('people_email',$row['cosEmail']);
                    $this->session->set_userdata('people_status',$row['cosStatus']);
                    $this->session->set_userdata('people_lang',$row['cosLang']);
                    $this->session->set_userdata("logged_in", true);

我可以为客户进行这样的编辑吗?

<?php $cus_data = $this->db->get_where('customer');
                    foreach ($cus_data->result_array() as $row) {

                    if($this->session->set_userdata('people_id',$row['cusId']))
                    {
                        $src = base_url('upload/customer/'.$this->session->userdata('people_img'));
                    }
                    else
                    {
                        $src = base_url('upload/user/'.$this->session->userdata('people_img'));
                    }}
                    ?>

目前的登录方式:

public function index(){
        $this->load->library('form_validation');
        $this->form_validation->set_rules("username", "Username", "trim|required");
        $this->form_validation->set_rules("password", "Password", "trim|required");
        if ($this->form_validation->run() == FALSE)
        {
            $this->session->set_flashdata("error", validation_errors());
            $this->load->view("login");
        }
        else{
            $username = $this->input->post('username');
            $password = $this->input->post('password');
            $user_data = $this->db->get_where('user', array('userUsername' =>$username,'userPass' => $password));
            $cus_data = $this->db->get_where('customer', array('cosUserName' =>$username,'cosPassword' => $password));
            if ($user_data->num_rows() > 0) {
                foreach ($user_data->result_array() as $row) {
                    $this->session->set_userdata('people_id',$row['userId']);
                    $this->session->set_userdata('people_name',$row['userName']);
                    $this->session->set_userdata('people_surname',$row['userSurname']);
                    $this->session->set_userdata('people_usertype',$row['userType']);
                    $this->session->set_userdata('people_username',$row['userUsername']);
                    $this->session->set_userdata('people_img',$row['userImg']);
                    $this->session->set_userdata('people_email',$row['userEmail']);
                    $this->session->set_userdata('people_status',$row['userStatus']);
                    $this->session->set_userdata('people_cdate',$row['userDate']);
                    $this->session->set_userdata('people_department',$row['userDepartment']);
                    $this->session->set_userdata('people_lang',$row['userLang']);
                    $this->session->set_userdata("logged_in", true);
                }
                // redirect to dashboard
                redirect("dashboard");
            }
            elseif ( $cus_data->num_rows() > 0) {
                foreach ($cus_data->result_array() as $row) {
                    $this->session->set_userdata('people_id',$row['cusId']);
                    $this->session->set_userdata('people_name',$row['cosName']);
                    $this->session->set_userdata('people_surname',$row['cosSurname']);
                    $this->session->set_userdata('people_username',$row['cosUserName']);
                    $this->session->set_userdata('people_img',$row['cosImg']);
                    $this->session->set_userdata('people_cname',$row['cosCName']);
                    $this->session->set_userdata('people_country',$row['cosCountry']);
                    $this->session->set_userdata('people_email',$row['cosEmail']);
                    $this->session->set_userdata('people_status',$row['cosStatus']);
                    $this->session->set_userdata('people_lang',$row['cosLang']);
                    $this->session->set_userdata("logged_in", true);
                }
                // redirect to dashboard
                redirect("dashboard");
            }
            else{
                $this->session->set_flashdata("error", "Username or Password is invalid");
                $this->load->view("login");
            }
        }
    }

【问题讨论】:

  • 你得到的错误是什么?
  • 我没有收到任何错误。客户登录时,标题上没有图像。
  • 你想达到什么目的?情况看起来还不错,那么还有什么不起作用?
  • 我想在客户登录时显示,客户从客户目录中看到自己的图片,或者当用户登录时,用户可以从用户目录中看到自己的图片。

标签: php codeigniter session login codeigniter-3


【解决方案1】:

做这样的事情:

第一道: 在您的登录方法中,也为图像url 设置一个session

对于客户:

$cust_src = base_url('upload/customer/'.$row['cusImg']);
$this->session->set_userdata('image_src',$cust_src);

对于用户:

$user_src = base_url('upload/customer/'.$row['userImg']);
$this->session->set_userdata('image_src',$user_src);

而你的主播 img 应该是这样的:

<a data-toggle="dropdown" class="dropdown-toggle" href="#">
     <img alt="" src="<?=$this->session->userdata('image_src');;?>">
     <span class="username"><?php echo $this->session->userdata('people_name'); ?>  <?php echo $this->session->userdata('people_surname'); ?></span>
     <b class="caret"></b>
</a>

第二种方法是这样的:

<a data-toggle="dropdown" class="dropdown-toggle" href="#">
    <?php if($this->session->userdata('people_id') == 'cosId') 
    {
        $src = base_url('upload/customer/'.$this->session->userdata('people_img'));
    }
    else
    {
        $src = base_url('upload/user/'.$this->session->userdata('people_img'));
    }
    ?>

    <img alt="" src="<?php echo $src;?>" >
    <span class="username"><?php echo $this->session->userdata('people_name'); ?>  <?php echo $this->session->userdata('people_surname'); ?>

    </span>
    <b class="caret"></b>
</a>

【讨论】:

  • 不,我看不到客户图片。 cosId 是数据库上客户表中的一个字段。我可以等于你认为的正确吗? ($this->session->userdata('people_id') == 'cosId')
  • 如果会话值与您的数据库 customer_id 匹配,它肯定会向您显示结果,请确保两者相同
  • 图片路径正确。我在顶部添加了用户数据的控制器部分。
  • 有点困惑,如果$cus_data$user_data 都有数据,你的会话会是什么
  • 我该怎么做?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-30
  • 1970-01-01
  • 2013-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多