Question

quelqu'un peut me donner un exemple sur la façon de créer des sessions et écrire des données. Je l'ai vu la syntaxe sur la façon d'écrire des données à une session en utilisant la commande d'écriture. Mais comment créer une session et récupérer les valeurs en elle.

Dans ma demande, j'ai deux données, form_id et user_id qui doit être utilisé dans toutes les demandes de page. Alors, comment puis-je enregistrer comme une variable de session et l'utiliser dans l'application?

EDIT

function register()
{
    $userId=$this->User->registerUser($this->data);
    $this->Session->write('User.UserId',$userId);
    //echo "session".$this->Session->read('User.UserId');
    $this->User->data=$this->data;
    if (!$this->User->validates())
    {
    $this->Flash('Please enter valid inputs','/forms' );
      return;   
    }

$this->Flash('User account created','/forms/homepage/'.$userId);            

}   

Comment utiliser la variable de session User.UserId au lieu de userId $ en $ this-> Flash ( 'compte utilisateur créé', '/ formes / page d'accueil /'. $ userId );

Et puis-je utiliser cette variable dans tous mes fichiers de vue, parce que dans toutes les demandes de page Je passe aussi userId?

EDIT 2

I have 2 contrôleurs, l'utilisateur et la forme. Je vous écris à la userid une variable de session dans les utilisateurs _controller. J'ai un fichier de vue appelé homepage.ctp, dont l'action est dans le forms_controller. Maintenant, comment puis-je utiliser la variable de session définie dans la users_controller la page d'accueil? Désolé si je pose des questions idiotes. Je suis passé par le cakebook, mais mes doutes n'étaient pas débarrassées. Je suis aussi essayer la méthode essai et erreur de codage, donc s'il vous plaît me aider.

EDIT 3

J'ai une variable de session « uid » qui est l'identifiant de l'utilisateur dans l'action de la page d'accueil d'un contrôleur.

       $this->Session->write('uid',$this->data['Form']['created_by']);

J'ai besoin de la même variable dans la méthode d'action de conception du même contrôleur. Quand je donne

             $uid=$this->Session->read('uid');
            echo "uid: ".$uid;

la valeur est fait l'écho.

Je ne peux pas utiliser la variable de session dans le même contrôleur?

Était-ce utile?

La solution 5

J'ai découvert la raison pour laquelle l'uid n'a pas été repris (3 modifier partie de la question). Elle est due à une erreur stupide, avait un espace blanc après la balise de fin?> Dans le contrôleur. Maintenant ça fonctionne bien.

Autres conseils

La boulangerie est votre meilleur ami:

http://book.cakephp.org/view/398/Methods

Toutes session de lecture / écriture appartiennent dans le contrôleur:

$this->Session->write('Person.eyeColor', 'Green');

echo $this->Session->read('Person.eyeColor'); // Green

gâteau php vous pouvez créer la session comme ceci

$this->request->session()->write('user_id', 10);

et vous pouvez valeur de session lirait comme suit

echo $this->request->session()->read('user_id');

Super simple!

Vous ne devez pas écrire du code pour créer session, ils sont déjà intégrés. Ensuite, il suffit d'utiliser la lecture et d'écriture des sessions comme mentionné ci-dessus. Voir aussi ici pour plus de détails:

http://book.cakephp.org/2.0 /en/core-libraries/components/sessions.html Utilisé dans les contrôleurs

http://book.cakephp.org/2.0 /en/core-libraries/helpers/session.html Utilisé dans les vues

Dans ce cas, il serait:

$this->Flash('User account created','/forms/homepage/'.$this->Session->read('User.UserId'));

et votre deuxième question est anwered par Jason Miy ( http://api.cakephp.org / classe / session assistant ). Vous pouvez simplement utiliser dans votre vue:

$userId = $session->read('User.UserId');

La lecture des pages de livres de cuisine appropriées lentement et avec précaution aide généralement beaucoup ...

quand j'ai comportement étrange séance, et cela me aider.

Modèle:

 function clearAllDBCache() {
    $db =& ConnectionManager::getDataSource($this->useDbConfig);
    $db->_queryCache = array();
   }

`

Acess votre Helper SessionHelper dans lib/Cake/View/Helper/SessionHelper.php et ajouter la méthode:

public function write($name = null) {
    return CakeSession::write($name);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top