Domanda

qualcuno può darmi un esempio su come creare sessioni e scrivervi dati.Ho visto la sintassi su come scrivere i dati in una sessione utilizzando il comando write.Ma come creare una sessione e recuperare i valori in essa contenuti.

Nella mia applicazione ho due dati, form_id e user_id che devono essere utilizzati in tutte le richieste di pagina.Quindi, come posso salvarlo come variabile di sessione e utilizzarlo nell'applicazione?

MODIFICARE

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);            

}   

Come utilizzare la variabile di sessione 'Utente.IDUtente' invece di $userId in $this->Flash('Account utente creato','/forms/homepage/'.$IDutente);

E posso usare questa variabile in tutti i miei file di visualizzazione, perché in tutte le richieste di pagina passo anche l'userId?

MODIFICA 2

Ho 2 controller, utente e modulo.Scrivo l'ID utente in una variabile di sessione nel file users_controllore.Ho un file di visualizzazione chiamato homepage.ctp, la cui azione è nel form_controller. Ora come posso utilizzare la variabile di sessione definita in users_controller nella home page?Scusate se faccio domande stupide.Ho sfogliato l'album delle torte, ma i miei dubbi non sono stati chiariti.Sto anche provando un metodo di codifica per tentativi ed errori, quindi per favore aiutami.

MODIFICA 3

Ho una variabile di sessione "uid" che è l'ID utente nell'azione della home page di un controller.

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

Ho bisogno della stessa variabile nel metodo di azione di progettazione dello stesso controller.Quando do

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

il valore non viene ripetuto.

Non posso utilizzare la variabile di sessione nello stesso controller?

È stato utile?

Soluzione 5

ho scoperto il motivo per cui l'uid non veniva fatto eco (Edit 3 parte della domanda). E 'a causa di uno stupido errore, ha avuto uno spazio bianco dopo il tag di chiusura?> Nel controller. Ora si sta lavorando bene.

Altri suggerimenti

Il panificio è il tuo migliore amico:

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

Tutta la vostra sessione di lettura / scrittura appartengono nel controller:

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

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

In PHP torta puoi creare sessione come questo

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

ed è possibile valore di sessione leggere in questo modo

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

Super Semplice!

Non è necessario scrivere alcun codice per creare la sessione, sono già integrati.Quindi usi semplicemente le sessioni di lettura e scrittura come menzionato sopra.Vedi anche qui per maggiori dettagli:

http://book.cakephp.org/2.0/en/core-libraries/components/sessions.htmlUtilizzato nei controller

http://book.cakephp.org/2.0/en/core-libraries/helpers/session.htmlUtilizzato nelle visualizzazioni

In questo caso sarebbe:

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

e la tua seconda domanda è anwered da Jason Miy ( http://api.cakephp.org / classe / session-helper). Si può semplicemente utilizzare questo a vostro parere:

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

La lettura delle pagine di libro di cucina appropriati lentamente e con attenzione di solito aiuta molto ...

quando ho strano comportamento della sessione, e questo mi aiuta.

MODELLO:

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

`

Acess tuo Helper SessionHelper in lib/Cake/View/Helper/SessionHelper.php e aggiungere il metodo:

public function write($name = null) {
    return CakeSession::write($name);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top