A voir également:
- [PHP SESSIONS &... DNS!]
- Changer dns - Guide
- Dns gratuit - Guide
- Easy php - Télécharger - Divers Web & Internet
- Clear dns cache - Guide
- Dns bouygues - Accueil - Guide box et connexion Internet
4 réponses
Exusez moi,
Une erreur s'est glissée dans ce que j'ai posté.
J'ai marqué dans mon post
"Ma page d'accueil, index.php commence par : <?php session_start() ?> Donc un cookie est envoyé et dans..."
Evidemment, aucun cookie n'est envoyé, j'utilise des sessions qui sont enregistrés sur un répertoire [tmp] du serveur.
ThanX
Une erreur s'est glissée dans ce que j'ai posté.
J'ai marqué dans mon post
"Ma page d'accueil, index.php commence par : <?php session_start() ?> Donc un cookie est envoyé et dans..."
Evidemment, aucun cookie n'est envoyé, j'utilise des sessions qui sont enregistrés sur un répertoire [tmp] du serveur.
ThanX
Delta9_THC
Messages postés
65
Date d'inscription
mardi 8 mars 2005
Statut
Membre
Dernière intervention
26 avril 2009
2
18 mai 2006 à 10:25
18 mai 2006 à 10:25
Salut,
Si j'ai bien suivi tout est normal. Apache ne peut pas deviner que c'est la même personne qui navigue et que cette personne veut la même session sur toutes ses pages.
Il faut donc récupérer l'ID de session dans une variable et la passer en paramètre à ta page (par GET ou POST selon les traitements). Ensuite à l'ouverture, il faut récupérer cette valeur et indiquer à PHP que tu veux ouvrir CETTE session, et non en re-créer une.
Le mieux étant de regarder la doc PHP au sujet des sessions.
Le début de ta page va ressembler à ça :
Bon ça c'est bien quand les pages se suivent mais quand tu en ouvres une nouvelle vierge et que tu vas ensuite sur le site ben ça marche pas.
Passe alors par des cookies, le fonctionnement est similaire et bien expliqué dans la doc.
J'espère avoir tapé juste.
Si j'ai bien suivi tout est normal. Apache ne peut pas deviner que c'est la même personne qui navigue et que cette personne veut la même session sur toutes ses pages.
Il faut donc récupérer l'ID de session dans une variable et la passer en paramètre à ta page (par GET ou POST selon les traitements). Ensuite à l'ouverture, il faut récupérer cette valeur et indiquer à PHP que tu veux ouvrir CETTE session, et non en re-créer une.
Le mieux étant de regarder la doc PHP au sujet des sessions.
Le début de ta page va ressembler à ça :
if (isset($_GET['session'])) //si l'ID de session est passé en paramètre GET session_id($_GET['session']) ; //on l'attribue à la session (reprise de session) session_start() ; //on démarre (ou reprend, selon la condition précédente) la session $session = session_id() ; //récupération de l'ID de session dans une variable $session
Bon ça c'est bien quand les pages se suivent mais quand tu en ouvres une nouvelle vierge et que tu vas ensuite sur le site ben ça marche pas.
Passe alors par des cookies, le fonctionnement est similaire et bien expliqué dans la doc.
J'espère avoir tapé juste.
Merci pour ta réponse.
Cependant, il y a quelque chose que je ne comprends pas.
Je prends un exemple :
Un utilisateur ouvre la page index.php en se connectant à http://AdresseIP/
En gardant cette page ouverte, s'il ouvre d'autres fenêtres et qu'il entre dans l'adresse http://AdresseIP/, aucun fichier n'est créé dans le dossier [TMP]. La session est automatiquement récupérée.(Sans utiliser les id sessions)
Par contre, tout en gardant cette page ouverte, s'il ouvre une fenêtre avec l'adresse http://NomDeLaMachine/ un nouveau fichier est créé dans le dossier [TMP] et donc une nouvelle session est démarrée.
Pourquoi ce comportement? Pourquoi tant qu'il saisit une adresse ip dans http, la session est gardée??? Et pouquoi en tapant le NomDeLaMachine une nouvelle session démarre???
Je ne suis pas sûr, mais je pense que ce comportement est dû au fait ques les headers envoyés au serveurs ne sont pas identiques si on tape http://AdresseIP ou http://NomDeLaMachine
Quelqu'un pourrrait confirmer mon explication???
Quelqu'un sait comment contourner le problème? Est ce que récupérer l'ID session comme proposé par "Delta" est la bonne solution.
ThanX
Cependant, il y a quelque chose que je ne comprends pas.
Je prends un exemple :
Un utilisateur ouvre la page index.php en se connectant à http://AdresseIP/
En gardant cette page ouverte, s'il ouvre d'autres fenêtres et qu'il entre dans l'adresse http://AdresseIP/, aucun fichier n'est créé dans le dossier [TMP]. La session est automatiquement récupérée.(Sans utiliser les id sessions)
Par contre, tout en gardant cette page ouverte, s'il ouvre une fenêtre avec l'adresse http://NomDeLaMachine/ un nouveau fichier est créé dans le dossier [TMP] et donc une nouvelle session est démarrée.
Pourquoi ce comportement? Pourquoi tant qu'il saisit une adresse ip dans http, la session est gardée??? Et pouquoi en tapant le NomDeLaMachine une nouvelle session démarre???
Je ne suis pas sûr, mais je pense que ce comportement est dû au fait ques les headers envoyés au serveurs ne sont pas identiques si on tape http://AdresseIP ou http://NomDeLaMachine
Quelqu'un pourrrait confirmer mon explication???
Quelqu'un sait comment contourner le problème? Est ce que récupérer l'ID session comme proposé par "Delta" est la bonne solution.
ThanX
Delta9_THC
Messages postés
65
Date d'inscription
mardi 8 mars 2005
Statut
Membre
Dernière intervention
26 avril 2009
2
>
walid
18 mai 2006 à 21:23
18 mai 2006 à 21:23
Re,
Je suis pas spécialiste donc mes propos ne seront pas les plus justes. Je pense que ta proposition sur les headers est peut être la plus plausible.
Maintenant, je répète, je suis pas spécialiste donc je peux pas confirmer.
Je suis pas spécialiste donc mes propos ne seront pas les plus justes. Je pense que ta proposition sur les headers est peut être la plus plausible.
Maintenant, je répète, je suis pas spécialiste donc je peux pas confirmer.
Bonjour à tous,
Tout d'abord, je remercie Delta pour sa participation.
J'ai effectué des tests avec des collègues sur des environnements wan & lan, on arrive aux conclusions suivantes :
1- Il ne faut pas démarrer de session dans la page index.php ou toute autre page si elle comporte un formulaire d'authentification qui renvoie vers un script vérifiant login et mot de passe.
Cette page en question ne doit pas contenir de session_start(). Sinon attendez vous, un jour ou l'autre, à un problème de navigation ou à une faille dans la sécurité de votre site.
2- Le formulaire en question, doit renvoyer vers "actinon = http://adresseip/nom de la page traitant les données" et non pas vers "action : nom de la page traitant le script"
3- Dans les différentes pages de votre site, si vous utilisez des renvois (header Location:http://...) utilisez TOUT le temps l'adresse IP de votre machine et non l'adresse nom.
2 comportements à expliquer:
1- si un visiteur qui s'est déjà authentifié, ouvre une nouvelle fenêtre(tout en gardant la première ouverte), il pourra ouvrir une session différente avec le même nom d'utilisateur ou un nom d'utilisateur différent.
2- si un visiteur qui s'est déjà authentifié, utilise la même fenêtre pour revenir à la page d'accueil et ouvrir une nouvelle session : C'est la session en cours qui sera modifiée : Ainsi il pourra se reconnecter avec le même nom d'utilisateur ou un nom d'utilisateur différent sans pour autant ouvrir une nouvelle session.
Si vous avez besoin de plus amples explications, faites moi signe.
Walid G.
Tout d'abord, je remercie Delta pour sa participation.
J'ai effectué des tests avec des collègues sur des environnements wan & lan, on arrive aux conclusions suivantes :
1- Il ne faut pas démarrer de session dans la page index.php ou toute autre page si elle comporte un formulaire d'authentification qui renvoie vers un script vérifiant login et mot de passe.
Cette page en question ne doit pas contenir de session_start(). Sinon attendez vous, un jour ou l'autre, à un problème de navigation ou à une faille dans la sécurité de votre site.
2- Le formulaire en question, doit renvoyer vers "actinon = http://adresseip/nom de la page traitant les données" et non pas vers "action : nom de la page traitant le script"
3- Dans les différentes pages de votre site, si vous utilisez des renvois (header Location:http://...) utilisez TOUT le temps l'adresse IP de votre machine et non l'adresse nom.
2 comportements à expliquer:
1- si un visiteur qui s'est déjà authentifié, ouvre une nouvelle fenêtre(tout en gardant la première ouverte), il pourra ouvrir une session différente avec le même nom d'utilisateur ou un nom d'utilisateur différent.
2- si un visiteur qui s'est déjà authentifié, utilise la même fenêtre pour revenir à la page d'accueil et ouvrir une nouvelle session : C'est la session en cours qui sera modifiée : Ainsi il pourra se reconnecter avec le même nom d'utilisateur ou un nom d'utilisateur différent sans pour autant ouvrir une nouvelle session.
Si vous avez besoin de plus amples explications, faites moi signe.
Walid G.