Problème avec les sessions php
aneantisseur
Messages postés
385
Date d'inscription
Statut
Membre
Dernière intervention
-
Smoking bird Messages postés 870 Date d'inscription Statut Membre Dernière intervention -
Smoking bird Messages postés 870 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je fais appel à la communauté informatique car j'ai un problème avec mes sessions php bien que je soit codeur depuis 1an.
Bon, voilà le problème : Donc je déclare mes variables de session dans un fichier inclu dans toute les pages. $_STATUT correpond au statut du membre : 0 -> invité, 1 -> membre, 3 -> modo
Donc je me connecte, mais la variable $_STATUT, qui définit donc où l'utilisateur peut aller, est remise a 0 après un rafraîchissement de la page. Voici le code de mon fichier qui déclare les variables de session :
Merci de bien vouloir m'aider.
Bon, voilà le problème : Donc je déclare mes variables de session dans un fichier inclu dans toute les pages. $_STATUT correpond au statut du membre : 0 -> invité, 1 -> membre, 3 -> modo
Donc je me connecte, mais la variable $_STATUT, qui définit donc où l'utilisateur peut aller, est remise a 0 après un rafraîchissement de la page. Voici le code de mon fichier qui déclare les variables de session :
<?php include("config.php"); $_STATUT = false; mysql_connect($database_location, $database_user, $database_pass); mysql_select_db($database_name); if (isset($_POST['login']) AND isset($_POST['motdepasse']) AND isset($_POST['envoyer'])) { $_SESSION['pseudo'] = $_POST['login']; $_SESSION['password'] = $_POST['motdepasse']; } if (isset($_SESSION['pseudo']) AND isset($_SESSION['password'])) { $verif_pseudo = $_SESSION['pseudo']; $HEAD_verif2_brut = mysql_query("SELECT * FROM comptes WHERE pseudo='$verif_pseudo'"); while ($HEAD_verif2 = mysql_fetch_array($HEAD_verif2_brut)) { if ($HEAD_verif2['password'] == md5($_SESSION['password'])) { $_STATUT = "1"; $_SESSION['id'] = $HEAD_verif2['ID']; $_SESSION['pseudo'] = $HEAD_verif2['pseudo']; $_SESSION['password'] = $HEAD_verif2['password']; $_SESSION['email'] = $HEAD_verif2['email']; $_SESSION['image'] = "../imagesmembres/".$_SESSION['id'].".jpg"; mysql_query("UPDATE comptes SET IP='".$_SERVER['REMOTE_ADDR']."', timestamp=".time()." WHERE pseudo='".$verif_pseudo."'")or die (mysql_error()); $_SESSION['ip'] = $HEAD_verif2['IP']; } else $_STATUT = "0"; } } ?>
Merci de bien vouloir m'aider.
A voir également:
- Problème avec les sessions php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Alert php ✓ - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
- Php alert - Forum PHP
12 réponses
mets session_start() avant la moindre ligne de code^^ en haut des headers donc^^ ça devrait fonctionner.
je le sais ca, mon header est inclut dans le fichier skinh.php qui est lui même inclut aux pages php. C'est dans ces pages php qui ne seront inclues nul part que je met les session_start();
en gros, les fichiers includes ne servent qu'a définir des varaibles ou l'affichage, mais pas les session_start.
en gros, les fichiers includes ne servent qu'a définir des varaibles ou l'affichage, mais pas les session_start.
donc si j'comprends bien, c'est pas bon^^ tu dois le mettre en haut de toutes les pages qui ont besoin de la session^^ avant la moindre variable et de préférence avant tes headers html, faut pas le mettre en haut de tes scripts, mais bien en haut de tes pages^^.
par exemple^^
<?php session_start(); $destroy=''; ?> <!doctype > <html> <header> </header> <body> <?php include_once('skinhp.php'); ?> </body> </html>
par exemple^^
ba en fait je fais ca :
fichier header -> définit les variables $_SESSION, pas de session_start
fichier skinh -> défini le skin en foncton de la valeur de $_STATUT, le header est inclut, pas de session_start
fichier chat.php -> présence du fichier skinh.php, donc header.php, présence de session_start(); avant l'include de skinh.php
exemple :
J'ai toujours travaillé comme ca, et c'est la première fois que ca me fait ca
fichier header -> définit les variables $_SESSION, pas de session_start
fichier skinh -> défini le skin en foncton de la valeur de $_STATUT, le header est inclut, pas de session_start
fichier chat.php -> présence du fichier skinh.php, donc header.php, présence de session_start(); avant l'include de skinh.php
exemple :
<?php session_start(); ?> <?php include("includes/skinh.php"); include("includes/skinb.php"); ?>
J'ai toujours travaillé comme ca, et c'est la première fois que ca me fait ca
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ca m'a l'air d'être le bazard tout ça^^
Tu comprendras mieux la logique de ton travail que moi, donc bon^^
Tu utilise plusieurs fichiers pour conçevoir ta page, il y en a forcément un qui n'a aucun parent et qui contient les éléments qui n'ont pas de parents eux aussi en php. En haut de ce fichier, tu places ton session_start. Pour m'assurer qu'il n'y a aucun problème, je met le session_start sur toutes les pages d'un projet qui nécessite des sessions.
A la relecture, la place du session start est probablement en première ligne du fichier skinh, donc avant l'appel de header, et avant l'attribution de la moindre variable. Tente et dis nous
Tu comprendras mieux la logique de ton travail que moi, donc bon^^
Tu utilise plusieurs fichiers pour conçevoir ta page, il y en a forcément un qui n'a aucun parent et qui contient les éléments qui n'ont pas de parents eux aussi en php. En haut de ce fichier, tu places ton session_start. Pour m'assurer qu'il n'y a aucun problème, je met le session_start sur toutes les pages d'un projet qui nécessite des sessions.
A la relecture, la place du session start est probablement en première ligne du fichier skinh, donc avant l'appel de header, et avant l'attribution de la moindre variable. Tente et dis nous