Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/09/2007, 18h27   #1
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
Par défaut [Cookies] Empêcher l'envoi d'un message à chaque rafraîchissement de la page

Bonjour

J'ai récemment développé une page php gérant les erreurs http. Lorsque q'un visiteur tombe sur cette page, un message m'est automatiquement envoyé.

Le soucis que je rencontre en ce moment est le suivant à savoir si le visiteur en question rafraîchit la page en appuyant sur F5, je reçois un autre message et ce petit manège peut durer très longtemps à moins de trouver une solution.

Auriez-vous une petite idée à me soumettre ? J'ai pensé aux sessions ? Qu'en pensez-vous ? Auriez-vous un petit exemple ?

Merci
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2007, 18h31   #2
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web indépendant

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
bonjour,

Moi perso, je fais un header qui me renvoie à la page voulu (cela peut être la même), cela permet d'annihiler toutes les variables POST.


++
__________________
LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2007, 18h48   #3
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
Citation:
Envoyé par sharrascript Voir le message
Moi perso, je fais un header qui me renvoie à la page voulu (cela peut être la même), cela permet d'annihiler toutes les variables POST.
C'est une idée mais elle ne me tente pas vraiment. Je pencherai plus sur l'utilisation des sessions mais à part ouvrir une session au moment ou le visiteur accède à ma page et l'a détruire au moment ou le navigateur se ferme hmm je ne vois pas comment effectuer les tests
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2007, 18h57   #4
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web indépendant

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
le header est très pratique, mais si tu ne veux pas l'utiliser c'est qu'il doit y avoir des raisons

Donc pour la session, c'est une idée. Tu la crée au moment de ta requête ce qui empêchera de la renvoyer une deuxième fois après test et conditions.

Dans tous les cas la session se détruit normalement à la fermeture du navigateur de l'utilisateur. A savoir que tant qu'il ne le ferme pas la session existe.

Ou alors, les détruire après un certains temps. pourquoi pas.
(Après voir ce que tu préfère, cookies ou session)
__________________
LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2007, 19h04   #5
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
Citation:
Envoyé par sharrascript Voir le message
le header est très pratique, mais si tu ne veux pas l'utiliser c'est qu'il doit y avoir des raisons
Voici un exemple, imaginons que je sois sur mon site et que je clique sur un lien pointant sur un script CGI. Malheureusement, celui-ci est très mal programmé donc je tombe directement sur une page d'erreur 500 et aussitôt un mail m'est envoyé.

Sur cette page personnalisé est indiquée, veuillez rafraîchir la page avec F5 et si le problème persiste, veuillez nous contacter à l'adresse suivante.

Sauf que si le visiteur appui de nouveau sur F5, je reçois un autre mail etc...

Je ne vois pas comment le header pourrait empécher l'envoit du message. Du moins, je ne sais pas comment le mettre en oeuvre.

Merci
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2007, 19h09   #6
Membre émérite
 
Avatar de sharrascript
 
Homme Franck
Développeur Web indépendant
Inscription : avril 2007
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Franck
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web indépendant

Informations forums :
Inscription : avril 2007
Messages : 678
Points : 900
Points : 900
Ha...

En effet^^

J'avais pas compris qu'un rafraichissement devait avoir lieu... désolé

Oui, vu sous cet angle, un système de session peut être nécessaire.
__________________
LudiKreation Pour un web ludique et son Blog | CapRumbo pour un peu d'évasion | ChaOdisiaque Club Passion Rôliste |SierrElben le Jeu de rôle
sharrascript est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2007, 20h51   #7
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
A mon avis m'adresser un email à chaque fois qu'un visiteur tombe sur ma page 403 n'est pas la bonne solution car même avec une session, je ne vois pas comment résoudre ce problème.

Avez-vous d'autres idées à partager s'il vous plaît ?

Merci
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2007, 23h10   #8
Membre chevronné
 
Inscription : mai 2005
Messages : 657
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 657
Points : 722
Points : 722
Salut,

Pourquoi ne pas plutôt opter pour un fichier de log ?
Chaque fois qu'une erreur apparait, tu rajoutes une ligne dans le fichier en question. C'est très facile ensuite de supprimer des lignes identiques qui se suivent.
Il me semble même que PHP permet en jouant avec la configuration de logger automatiquement les erreurs dans un fichier

Cela dit effectivement ça oblige à aller vérifier de temps en temps le fichier de log. Quoique cron doit pouvoir s'en charger pour toi
__________________
Toute la documentation Ruby on Rails : gotapi.com/rubyrails
Mes articles :
> HAML : langage de template pour Ruby on Rails
Taum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2007, 00h52   #9
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Tu peux t'aider de ce script :
http://a-pellegrini.developpez.com/t...php/mail/#L4.4
(à partir de "Une dernière vérification nous permettra d'éviter qu'une personne n'envoie deux fois l'e-mail en rafraichissant sa page.")
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2007, 02h51   #10
Membre confirmé
 
Inscription : mai 2006
Messages : 196
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 196
Points : 278
Points : 278
Béé c'est pas très compliqué et il te suffirai d'une seule variable de session (unique pour chaque utilisateurs) :
Code :
1
2
3
4
5
6
7
<?php
if ( !isset($_SESSION['EMailVisiteurEnvoyer']) )
{
   //Code pour envoyer l'email.
   $_SESSION['EMailVisiteurEnvoyer'] = true;
}
?>
Une fois que l'email sera envoyer, la variable de session sera créer et passera la condition du IF sur FALSE et ne te renverra donc pas de message. Après si tu veut une autre méthode en utilisant des fonctions spécifiques , propose ^^.
meliandah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2007, 18h41   #11
Rédacteur
 
Inscription : juillet 2004
Messages : 2 573
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : juillet 2004
Messages : 2 573
Points : 1 973
Points : 1 973
Bonjour

Merci à tous de vos propositions. Je vais opter pour la solution du fichier de log. J'utiliserai également une tâche cron pour recevoir par email ce fichier.

Merci
__________________
.Olivier
Olivier Regnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h51.


 
 
 
 
Partenaires

Hébergement Web