Comment démarrer des sessions en PHP avec un fichier préfixé

Pour utiliser les sessions, vous devez appeler le session_start () fonction sur chaque page qui va utiliser les sessions. Cela peut être compliqué, surtout si vous essayez de virer sessions sur plusieurs programmes PHP. Vous pouvez utiliser un auto_prepend_file appeler session_start et, ce faisant, vous ne devez pas modifier d'autres fichiers!

Dans l'exercice suivant, vous créez deux fichiers: celui qui sera le fichier principal et un autre contenant une fonction Prepended pour démarrer une session. Avant de procéder à cet exercice, vous devez vous assurer que .htaccess fichiers fonctionnent ou que vous pouvez modifier la configuration de votre serveur Web Apache.

Assurez-vous de redémarrer Apache si vous apportez une modification à la configuration.

Dans le .htaccess fichier pour votre document racine, placez le code suivant:

auto_prepend_file php_value "prepend.php"

Alternativement, vous pouvez ajouter cette ligne dans le strophe dans la configuration Apache pour votre serveur web pour votre document root. Par exemple, si votre document est la racine / var / www vous pouvez ajouter cette ligne après la / var / www> directive et avant la clôture ligne dans la configuration d'Apache.

Ouvrez votre éditeur de texte et de créer un nouveau fichier vide. Dans le fichier, placez le code suivant:




? lt;? phpif (isset ($ _ SESSION)) {print "! session a commencé" -} else {print "session n'a pas commencé" -}>

Enregistrez le fichier sous session.php dans votre document root.

Ouvrez un navigateur web et le point de http: //localhost/session.php. Vous devriez voir une page comme celle-ci.

image0.jpg

Réduire le navigateur Web et de créer un nouveau fichier au sein de votre éditeur de texte. Dans ce fichier placez le code suivant:

? lt;? phpsession_start () ->

Enregistrez le fichier sous prepend.php dans votre document root.

Dans votre navigateur Web, recharger le session.php déposer ou aller à http: //localhost/session.php pour afficher la session.php produisez vous avez créé précédemment. Vous devriez maintenant voir une page comme celle-ci.

image1.jpg

Si vous recevez une page blanche ou une erreur affiché par le navigateur, puis le fichier préfixé n'a pas été trouvé. Vérifiez les choses simples, comme l'orthographe du fichier (prepend.php). Aussi assurez-vous que le fichier que vous avez appelé avec le auto_prepend_file directive est où il devrait être, dans la racine des documents si cela est la façon dont votre serveur web est configuré.

Si vous recevez une page qui dit toujours «session n'a pas commencé," alors il ya une chance que Apache ne voit pas votre auto_prepend_file directive à tous. Si vous l'avez placé dans un .htaccess déposer dans votre document root, vous devez vous assurer que Apache lit la .htaccess fichier. Continuer la lecture ou vérifier auprès de votre fournisseur d'hébergement pour voir si .htaccess les fichiers sont autorisés.

Certaines configurations de serveur Web ne permettent pas .htaccess fichiers. Vous pouvez reconfigurer Apache pour leur permettre en changeant la AllowOverride directive Tous pour le répertoire à partir duquel vous voulez lire le .htaccess déposer (dans ce cas, votre document root). La directive devrait ressembler à ceci:

AllowOverride All

Prepended fichiers peuvent être des aides incroyables, mais ils peuvent aussi parfois causer de la confusion. Par exemple, si vous n'êtes pas sûr de la raison pour laquelle un programme est en train de faire quelque chose, un fichier auto-préfixé peut parfois ajouter à la confusion, car il charge tant d'autres fichiers et les fonctions - Ajout de beaucoup de place pour l'erreur.

En outre, chaque demande doit maintenant utiliser ce fichier auto-préfixé, ce qui peut provoquer des problèmes de performances si vous enchaînez un trop grand nombre requis et les fichiers inclus à partir de ce fichier préfixé. Cela dit, les avantages l'emportent généralement sur les inconvénients pour les fichiers pré-ajouté.


» » » » Comment démarrer des sessions en PHP avec un fichier préfixé