简体   繁体   中英

Link to a user profile page in codeigniter

I'm trying to make a function in the CodeIgniter framework so users can click on product detail page, and see which user uploaded that certain product and they must be able to click on the product owner to go to his profile page.

Now, I am already able to echo owner information of the product owner on the details page. But the link to the owner profile page is not working some reason and the name isn't echoed anymore since I tried to make it a link.

This is my product details page (details.php) foreach loop function where I'm trying to echo the username of the owner of a product and link it to their profile page:

<?php include_once ('templates/header.php'); ?>


<div class="container">
 <h3>Email van de eigenaar:</h4>
<?php 
        foreach($userdetail_list as $row)
                        {
                        ?>
                        <tr>
                            <td><?php echo $row['email'];?></td>
                         </tr>
       <?php } ?>
 </div>


<div class="container">
 <div class="row">
    <div class="col-md-4" style="margin-top:24px;">
    <img src="<?php echo base_url(); ?>upload/<?php echo $product['product_foto']; ?>" class="img-responsive">
</div>

<div class="col-md-5">
  <h1> <div class="product_naam"> <?php echo $product['product_naam']; ?>  </div> </h1>
   <h3>Over dit cadeau</h3>
     <div class="product_beschrijving"><?php echo $product['product_beschrijving']; ?> </div>
   </div>
   <div class="col-md-3">
     <a href="<?php echo base_url() ?>/Cadeauaanvragen"> <button type="button" class="btn btn-default">Cadeau aanvragen</button></a>
     <div class="aangeboden_door">   Aangeboden door:    <?php 
        foreach($userdetail_list as $row)
                        {
                        ?>
                       <tr>
    <td><a href="<?php echo base_url() . 'User/profiel_user?id='.$row['user_id']?>"><?=$row['username']; ?></a></td>
    <td><?php echo $row['email'];?></td>
 </tr>
       <?php } ?>
 </div>
     </div>
     </div>
</div> 




<div class="container">

<footer>
 <p>&copy; kadokado 2017, Inc.</p>
</footer>
<hr>
</div>

<div class="clearfix"></div>
<?php include_once ('templates/footer.php'); ?>

When I load the view page I do not see the username and no link to the users profile. Here is my controller (User.php):

    <?php

class User extends CI_Controller
{



       public function index()
    {
    $this->load->view('profile', $data);  
    }



    public function __construct()
    {
        parent::__construct();
        if ($_SESSION['user_logged'] == FALSE) {
            $this->session->set_flashdata("error", "Please login first to view this page!! ");
            redirect("auth/login");
        }
    }


 public function userdetails($user_id)
 {
  //load the User_model
  $this->load->model('User_model');

  //call function getdata in de Product_model
  $data['userdata_list'] = $this->User_model->getdata();

  //get product details
  $data['user'] = $this->User_model->get_user_info($user_id);

  //laad view
  $data['main_content'] = 'profiel_user';
  $this->load->view('profiel_user',$data);
 }



public function profile() 
{ 

$this->load->model('User_model'); 
if ($_SESSION['user_logged'] == FALSE) { 
$this->session->set_flashdata("error", "Please login first to view this page!! "); 
redirect("auth/login"); 
} 

$this->load->view('profile'); 

}



} 

full model file (User_model.php)

<?php


class User_model extends CI_Model {


public function getUserInfoByEmail($email)
    {
        $q = $this->db->get_where('users', array('email' => $email), 1);  
        if($this->db->affected_rows() > 0){
            $row = $q->row();
            return $row;
        }else{
            error_log('no user found getUserInfo('.$email.')');
            return false;
        }
    }

     public function getUserInfo($user_id)
    {
        $q = $this->db->get_where('users', array('user_id' => $user_id), 1);  
        if($this->db->affected_rows() > 0){
            $row = $q->row();
            return $row;
        }else{
            error_log('no user found getUserInfo('.$user_id.')');
            return false;
        }
    }


      public function getdata()
    {
        $this->db->where('user_id', $id);
        $this->db->from('users');
        $query = $this->db->get();
        if($query->num_rows()>0)
        {
           return $query->result_array();
        }
    }



}

?>

Problably because of this line:

<?=$row['username']; ?>

Maybe your server does not support short hand tags?

try this:

<?php echo $row['username']; ?>

You also missed a semicolon here at the end:

echo base_url() . 'User/profiel_user?id='.$row['user_id']

and also here:

<a href="<?php echo base_url() ?>/Cadeauaanvragen">

You also use table row and table data tags without a surrounding table tag. Or remove all tr and td tags. See: How do browsers analyze <tr> <td> without <table>?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM