6
votes

Access CakePHP Session (auth) de l'extérieur CakePHP

J'ai un site Web CakePHP avec son propre système de connexion à l'aide du composant Auth. J'aimerais savoir si ce qui suit est possible:

Un utilisateur est connecté et navigue dans le site Web. À un moment donné, il peut cliquer sur un lien qui ouvre un fichier PHP externe. Avec externe, je veux dire que cela pourrait être dans un autre dossier du même serveur, mais en dehors des dossiers d'applications CakePHP.

La chose "délicate" (pour moi) est de montrer uniquement le contenu de ce fichier PHP si l'utilisateur est connecté (pour empêcher une personne sans compte d'accéder à ces contenus). Je ne peux pas utiliser authentifié là-bas parce que je suis "à l'extérieur" du gâteau ... Je ne sais pas si peut-être utiliser $ _session, mais je ne sais pas comment ...

Est-ce que cela est encore possible? Et oui, le PHP doit être en dehors du système de dossier d'application CakePHP.

Des idées?


2 commentaires

var_dump ou print_r sont des fonctions PHP très utiles. Utilisez-les avec $ _Session et vous pouvez voir tout ce que CakePHP fait avec elle. C'est en fait intéressant à regarder.


J'ai eu la même question il y a un moment: Stackoverflow.com/questions/6988156/...


3 Réponses :


7
votes

Oui, vous pouvez accéder à la session CakePHP extérieure dossier CakePHP. Essayez cette variable de session xxx

s'il existe alors vérifier l'utilisateur ici xxx


2 commentaires

Merci pour votre réponse! Donc, fondamentalement, j'ai juste besoin de vérifier si $ _ session ['auth'] ['utilisateur'] existe? Par exemple, avec un gâteau, je ne fais généralement que $ ceci-> session-> check ('auth.user') Pour savoir si un utilisateur est connecté ... serait-ce l'équivalent?


@ Kashif - Son travail pour moi sur Localhost mais pas sur mon hébergement partagé. Il vient de retourner un tableau de session vide



8
votes

Je vais ajouter que vous devez également définir le nom de la session sur "CakePHP" à l'aide de xxx

juste avant votre application externe session_start () sinon vous ne pouviez pas appliquer Kashif Khan Solution suggérée :) < / p>

acclamations,


0 commentaires

1
votes

Cela ne fonctionne pas dans CakePHP3. Après avoir appelé

session_name("CAKEPHP");
session_start();


0 commentaires