J'utilise PHP et codeigniter. J'essaie de définir une variable en session.Valeur de session dans codeigniter
Contrôleur
defined('BASEPATH') OR exit('No direct script access allowed');
class Welcome extends CI_Controller {
public function __construct(){
parent::__construct();
$this->config->base_url();
$this->load->library('session');
if(!$this->session->has_userdata('zoo'))
{
$fooBar = md5(uniqid(rand(), TRUE));//generates random number
$newdata = array(
'username' => 'nirali',
'zoo' => $fooBar
);
$this->session->set_userdata($newdata);
exit;
}
}
public function read_session(){
$array = $this->session->all_userdata();
print_r($array);
exit;
}
}
Lors de la première méthode setter du constructeur demande est exécuté et il remplit variable de session. et arrête l'exécution à cause de la sortie; déclaration.
Et quand je l'appelle read_session() il imprime
Array ([__ci_last_regenerate] => 1489646422 [username] => nirali [zoo] => 531d8bfb21ed21b83bc7e3763a04f88c)
quand je me rappelle read_session() il imprime
Array ([__ci_last_regenerate] => 1489647898 [username] => nirali [zoo] => cb675bee85da672c95166dbc1dbbdfd2)
Je reçois la valeur du nom d'utilisateur pour nirali
qui devrait - tout bon mais pour le zoo, je reçois toujours une valeur différente, j'attends la même valeur pour la même session
Mise à jour
Lors du débogage plus loin je l'ai trouvé. Le serveur ne renvoie aucun cookie en réponse.
ce qui pourrait être mal dans la configuration du serveur qui n'envoie de cookie de session retour en réponse?
essayer $ fooBar = md5 (uniqid (rand(), TRUE)); obtenir cette ligne sur si déclaration. –
@ Shahid comment cela pourrait-il aider? ne va-t-il pas invoquer cela à chaque demande (comme opposé à la définition de ce qui est ce que OP essaie de faire) –
@JigarJoshi Pas sûr. C'est pourquoi j'ai suggéré dans le commentaire et n'a pas posté une réponse –