? Session Warning ? - PHP - Programmation
Marsh Posté le 19-02-2004 à 12:16:02
Fo mettre le session_start() au tout début de ton code avant d'envoyer un quelconque caractère vers l'écran.
Marsh Posté le 19-02-2004 à 12:37:26
? mais j'envoie deja plein de caractères à l'écran (ne serait-ce que pour les entetes html des fichiers). Si tu me dis ca, ca implique donc qu'on crée une session dès le passage d'un utilisateur sur la page de garde du site (la toute 1ere), qu'on la laisse tranquille le temps que l'utilisateur se logge ou s'inscrive, et qu'une fois vérifiés les paramètres d'identification (pseudo+password), on peut enfin les enregistrer dans $_SESSION ... ?
Si c'est bien comme ca qu'il faut procéder, comment tuer ma session si l'utilisateur part du site avant de se logger ??? (session créée à l'arrivée sur la 1ere page je veux bien, mais comment détecter que l'utilisateur est parti pour pouvoir la détruire ?)
Marsh Posté le 19-02-2004 à 12:39:54
Y'a un timeout des sessions que tu règle dans php.ini
Sinon pour détruire tu te sers de session_destroy();
Marsh Posté le 19-02-2004 à 13:57:25
Citation : Si tu me dis ca, ca implique donc qu'on crée une session dès le passage d'un utilisateur sur la page de garde du site (la toute 1ere), qu'on la laisse tranquille le temps que l'utilisateur se logge ou s'inscrive, et qu'une fois vérifiés les paramètres d'identification (pseudo+password), on peut enfin les enregistrer dans $_SESSION ... ? |
est-ce que c la bonne méthode ???
Citation : session créée à l'arrivée sur la 1ere page je veux bien, mais comment détecter que l'utilisateur est parti pour pouvoir la détruire ? |
quel est le moyen pour détecter l'annulation de la session puis la clore ? (où placer ce 'session_destroy()' ?)
>> ce qui m'inquiète, c que si l'utilisateur visite l'url ca va lancer une session dès son arrivée, mais s'il quitte l'url sans s'être identifié, je ne c pas comment supprimer cette session "pendante" vide... (est-ce grave pour les ressources de laisser trainer des sessions ?)
Marsh Posté le 19-02-2004 à 14:15:35
Concernant l'authentification, il vaut mieux faire un test de type en affectant une variable 'login' si ok.
$_SESSION['login']=true
Marsh Posté le 19-02-2004 à 15:16:49
g déjà vu pour le timeout, mais je n'aime pas laisser le contrôle à une machine... Je préfèrerai effectuer la destruction moi-même, mais je ne c pas comment (peut-être n'est-ce pas prévu pour ca tout simplement)
Pour l'authentification, je ne v certainement pas enregistrer un password dans $_SESSION, par contre j'aimerais conserver le login de l'utilisateur pour lui dire à son entrée identifiée sur le site: 'salut utilisateur_avec_ton_nom_a_toi', je trouve ca plus personnalisé que 'salut ok'! (et ca me permettrait d'afficher son nom sur toutes les pages du site si j'en ai l'envie)
Marsh Posté le 19-02-2004 à 12:09:08
bonjour,
je débute la construction d'un site, et je viens de mettre en place la phase initiale d'identification et d'inscription des utilisateurs. Tout marche bien, aucun probleme. Une fois l'utilisateur clairement identifié (login+pass), il a accès au site à proprement parler. Concrètement, ma page 'verifier_loginuser.php' lance une requete sur la table 'utilisateurs', recherche le login saisi et vérifie qu'il s'agit bien du mot de passe saisi correspondant au bon login. Lorsque ces 2 conditions sont remplies, et avant de rediriger vers la véritable page d'accueil du site, je crée une session dans laquelle je vais conserver plusieurs paramètres, comme le login, le type d'utilisateur et la date de création du compte:
session_start();
$_SESSION['login']=$login;
$_SESSION['type']=$type;
$_SESSION['date']=$date;
Seulement php me sort 2 erreurs, et je n'arrive pas à voir quel est le problème. Les voici:
Warning: Cannot send session cookie - headers already sent by (output started at c:\windows\bureau\site sig\www\entete.php:4) in c:\windows\bureau\site sig\www\veriflog.php on line 85
Warning: Cannot send session cache limiter - headers already sent (output started at c:\windows\bureau\site sig\www\entete.php:4) in c:\windows\bureau\site sig\www\veriflog.php on line 85
Bonjour
MERCI D'AVANCE pour vos réponses