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: p>
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. P>
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 ... P>
Est-ce que cela est encore possible? Et oui, le PHP doit être en dehors du système de dossier d'application CakePHP. P>
Des idées? P>
3 Réponses :
Oui, vous pouvez accéder à la session CakePHP extérieure dossier CakePHP. Essayez cette variable de session s'il existe alors vérifier l'utilisateur ici p>
Merci pour votre réponse! Donc, fondamentalement, j'ai juste besoin de vérifier si $ _ session ['auth'] ['utilisateur'] code> existe? Par exemple, avec un gâteau, je ne fais généralement que
$ ceci-> session-> check ('auth.user') code> 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
Je vais ajouter que vous devez également définir le nom de la session sur "CakePHP" à l'aide de juste avant votre application externe session_start () sinon vous ne pouviez pas appliquer Kashif Khan Solution suggérée :) < / p> acclamations, p> p>
Cela ne fonctionne pas dans CakePHP3. Après avoir appelé
session_name("CAKEPHP"); session_start();
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/...