2011-12-23 19 views
6

Ho un sito Web CakePHP con un proprio sistema di accesso che utilizza il componente Auth. Vorrei sapere se quanto segue è possibile:Accesso alla sessione cakephp (auth) dall'esterno cakephp

Un utente ha effettuato l'accesso e sta navigando il sito web. A un certo punto, può fare clic su un collegamento che apre un file php esterno. Con external intendo che potrebbe trovarsi in un'altra cartella dello stesso server, ma al di fuori delle cartelle dell'app CakePHP.

La cosa "difficile" (per me) è mostrare solo il contenuto di quel file php se l'utente ha effettuato l'accesso (per impedire a qualcuno senza un account di accedere a tali contenuti). Non posso usare Auth lì perché sono "fuori" Cake ... Non so se magari usando $ _SESSION, ma non so come ...

E 'anche possibile? E sì, il php deve essere al di fuori del sistema di cartelle app di CakePHP.

Qualche idea?

+2

var_dump o print_r sono funzioni di php molto utili. Usali con $ _SESSION e puoi vedere tutto ciò che CakePHP fa con esso. In realtà è interessante da guardare. – Vigrond

+0

Ho avuto la stessa domanda qualche tempo fa: http://stackoverflow.com/questions/6988156/accessing-cakephp-session-variable-from-a-php-script – AlexBrand

risposta

7

Sì, è possibile accedere alla Sessione cakephp al di fuori della cartella cakephp. provare questa sessione variabile

$_SESSION['Auth'] 

se esiste poi controllare per l'utente qui

$_SESSION['Auth']['User'] 
+0

grazie per la tua risposta! Quindi in pratica ho solo bisogno di verificare se '$ _SESSION ['Auth'] ['User']' esiste giusto? Ad esempio, con cake, di solito faccio solo '$ this-> Session-> check ('Auth.User')' per sapere se un utente è loggato ... sarebbe l'equivalente? – Albert

+0

sì, è giusto. –

+0

ok bello! Grazie mille! – Albert

8

io aggiungo è anche necessario impostare il nome sessione per "CakePHP" utilizzando

session_name('CAKEPHP') 

solo prima della tua app esterna session_start() altrimenti non potresti applicare Kashif Khan soluzione suggerita :)

Cheers,

+0

Grazie! un sacco uomo. Stavo cercando questo pezzo di codice. –

1

Questo non funziona in Cakephp3. Dopo aver chiamato

session_name("CAKEPHP"); 
session_start(); 

La sessione di applicazione sta scadendo.