web-dev-qa-db-fra.com

Comment obtenir la valeur d'une variable utilisateur data de la session codeigniter?

J'ai généré le tableau contenant les données de session en tant que,

array(8) {
  ["session_id"]=> string(32) "1dc5eb3730601a3447650fa4453f36cd"
  ["ip_address"]=> string(3) "::1" 
  ["user_agent"]=> string(102) "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36" 
  ["last_activity"]=> int(1427602284) 
  ["user_data"]=> string(0) "" 
  ["roll_no"]=> string(6) "111416" 
  ["is_logged_in"]=> int(1) 
  [0]=> object(stdClass)#20 (6) 
    { 
      ["name"]=> string(13) "durex" 
      ["email"]=> string(25) "[email protected]" 
      ["year"]=> string(1) "2" 
      ["semester"]=> string(1) "4" 
      ["branch"]=> string(2) "IT" 
      ["parent_email"]=> string(27) "[email protected]" 
    } 
}

Comment puis-je faire écho à name (durex) en utilisant la session ci-dessus $ userdata?

6
Prateek Joshi

C’est le processus que vous suivriez si vous vouliez définir puis récupérer des données d’utilisateur définies dans Codeigniter 2.0

<?php
        $user_array = array(
          'name' => 'bob',
          'email' => '[email protected]'
        );

        $this->session->set_userdata('userdata', $user_array);
        
        $user_data = $this->session->userdata('userdata');

        //Returns User's name 
        echo $user_data['name'];
?>

Je ne suis pas sûr que ce que vous avez collé ait été formaté correctement. Merci également de faire un print_r ou un var_dump($user_data) pour voir ce qu'il affiche dans la variable $user_data

Edit: Maintenant que vous avez mis à jour votre message, il est clair pour moi que vous devez faire ceci.

<?php
$user_data = $this->session->userdata('0');

echo $user_data->name;
?>

11
Jbwilliams1

Veuillez vérifier si cela fonctionne. Si vous l'obtenez à partir des valeurs de session:

<?php
        $user_data = $this->session->userdata('user_data');
        echo $user_data[0]['name'];
?>

si vous obtenez si de votre tableau:

<?php

        echo $your_array_name['user_data'][0]['name'];
?>

Note: Ceci est le format correct du tableau en PHP

<?php
$my_array = Array ( 
  'session_id' => '8f9286115a38df9ed54a65b135d4e8c0',
  'ip_address' => '::1',
  'user_agent' => 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36',
  'last_activity' => 1427600580,
  'roll_no' => 111416, 
  'is_logged_in' => 1,
  'email' => '',
  'user_data' => Array ( 
     0 => Array ( 
       'name' => 'durex', 
       'email' => '[email protected]', 
       'year' => 2 ,
       'semester' => 4, 
       'branch' => 'CSE', 
       'parent_email' => '[email protected]'
     )
  )
);
echo $my_array['user_data'][0]['name'];
?>
1
Arzgethalm

1.Obtenez votre session et enregistrez-la dans la variable $ Usernya = $ this-> session-> get_userdata ('sess');

2.Maintenant, vous pouvez afficher les données avec un simple écho Echo $ usernya ['nomutilisateur'];

1
Bharat Kr. Lal

Dans Codeigniter 3 vous pouvez récupérer les données de session en utilisant simplement la variable native $_SESSION de PHP

$_SESSION['item']

Ou par le getter magique

$this->session->item

Il permet encore pour le traditionnel

$this->session->userdata('item');

Plus dans les docs

0
digout