Cookie en local fonctionne mais pas en ligne

valb06 Messages postés 1 Date d'inscription dimanche 28 octobre 2007 Statut Membre Dernière intervention 29 janvier 2008 - 29 janv. 2008 à 11:49
zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 - 30 janv. 2008 à 02:03
Bonjour,
Avant de poster, j'ai visité votre forum et cherché sur le web, mais je n'ai pas trouvé la solution à mon problème. J'ai crée un formulaire de contact en php traité, via méthode post, par traitement.php. Si l'internaute ne fait aucune erreur, un cookie est crée pour éviter le flood, puis est renvoyé sur une page de confirmation. Si il y a flood, par rafraîchissement, retour-arrière ou click sur le lien contact, le cookie bloque l'envoi d'un nouveau message. Tout fonctionne en local (wampserver sur windows xp). Mais en ligne, rien à faire.
Le code de traitement php ne comporte aucun code html.
<?php
//Ici totalité du code de traitement du formulaire (en cas d'erreur de saisie, l'utilisateur est renvoyé au form via un require (contact.php) pour corriger ses erreurs.
    //toutes les vérif d'usage (je m'abstiens de les recopier)
    ............
    //On vérifie qu'il n'y a pas le fameux cookie anti-flood
        elseif (!isset($_COOKIE['sent']))

//Si tout est ok :

                                /*On créé un cookie de courte durée (ici 60 secondes) pour éviter de renvoyer un    mail    en rafraichissant la page - A modifier */
                                        setcookie('sent', '1', time() + 60);
            
                                // On détruit la variable $_POST
                                            unset($_POST);
                        }
       else
      {
                            //Si une erreur survient lors de l'envoi
                            $alert = 'message qui s\'affiche dans la page erreur';
                            require ('erreur.php');
                            die;
                        }
    }
    /* Cas où le cookie est créé et que la page est rafraichie, on détruit la variable $_POST */
    else
    {
        unset($_POST);
                                //Confirmation d'envoi d'email
                                $alert = 'message indiquant le flooding.';
                                require ('erreur.php');
                                die;                                
    }
}
else
    {
            //Si une erreur survient lors de la soumission du formulaire
        $alert = 'erreur de soumission';
        require ('erreur.php');
        die;
}
?>
Je rappelle que tout fonctionne parfaitement en local, mais en ligne seul le cookie ne fonctionne pas. Merci de m'éclairer, je suis en panne.
Valérie

2 réponses

zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 1
30 janv. 2008 à 01:58
ben c'est dure a suivre sans le debut du code...

else ... else koi ?

puis il semble manquer un { sous         elseif (!isset($_COOKIE['sent']))

mais bon... le debut du code ca serait le best...

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
0
zen69 Messages postés 584 Date d'inscription jeudi 28 décembre 2006 Statut Membre Dernière intervention 29 avril 2010 1
30 janv. 2008 à 02:03
hum quand tu dis que tout marche en local et qu'en ligne ca ne fonctionne pas ... est-ce que c'est le meme serveur ?

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
0
Rejoignez-nous