Tout d'abord, mener à bien ces contrôles habituels:
- Assurez -
session_start();
est appelé avant que les séances sont appelés. Donc, d'un coffre-fort pari serait de le mettre au début de votre page, immédiatement après l'ouverture <?php
balise avant toute autre chose. Aussi il n'y a pas d'espaces/tabulations avant l'ouverture <?php
balise.
- Après l'
header
redirection à la fin du script courant à l'aide de exit();
(d'Autres ont également proposé session_write_close();
et session_regenerate_id(true)
, vous pouvez essayer aussi, mais je ne l'utiliserais exit();
)
- Assurez-vous que les cookies sont activés dans le navigateur que vous utilisez pour faire des tests.
- Garantir
register_globals
est désactivé, vous pouvez le vérifier sur l' php.ini
le fichier et également à l'aide de phpinfo()
. Reportez-vous pour cela à la façon de l'éteindre.
- Assurez-vous de ne pas supprimer ou vider la session
- Assurez-vous que la clé dans votre
$_SESSION
tableau superglobal n'est pas écrasé n'importe où
- Assurez-vous que vous rediriger vers le même domaine. Si la redirection à partir d'un
www.yourdomain.com
de yourdomain.com
ne portent pas la session de l'avant.
- Assurez-vous que votre extension de fichier est -
.php
(ça arrive!)
Maintenant, ce sont les erreurs les plus courantes, mais si ils n'ont pas le problème, le problème est plus susceptible de faire avec votre société d'hébergement. Si tout fonctionne sur localhost
mais pas sur votre télécommande/serveur de test, alors c'est probablement le coupable. Afin de vérifier les connaissances de base de votre fournisseur d'hébergement (essayer aussi de leurs forums, etc). Pour des entreprises comme FatCow et iPage, ils vous demandent de spécifier session_save_path
. Donc, comme ceci:
session_save_path('"your home directory path"/cgi-bin/tmp');
session_start();
(remplacez "votre maison chemin d'accès au répertoire" avec votre maison chemin d'accès au répertoire. C'est généralement à l'intérieur de votre panneau de contrôle (ou l'équivalent), mais vous pouvez également créer un test.php
le fichier sur la racine de votre répertoire et tapez:
<?php echo $_SERVER['SCRIPT_FILENAME']; ?>
Le peu d'avant "test.php' est votre maison chemin d'accès au répertoire. Et bien sûr, assurez-vous que le dossier existe réellement dans votre répertoire racine. (Certains programmes ne pas télécharger les dossiers vides lors de la synchronisation)