pop up et cookie

Petit nouveau ! | 5 Messages

09 déc. 2007, 16:09

Bonjour,

Pour mon site j'ai mis en place une enquête afin de mieux connaître les visiteurs.
Je souhaiterai qu'une pop up s'ouvre quand on vient sur le site (n'importe quelle page du site) invitant les visiteurs à aller répondre à l'enquête, et que cette popup ne s'ouvre pas si le visiteur l'a vu sur une page précédente.

Comment faire ?
Je sais ouvrir une popup à l'ouverture d'une page; mais je ne connais rien en cookie etc...

Merci pour votre aide
Phil

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

09 déc. 2007, 16:17

Bonjour,

Voici une piste pour toi:
http://fr.php.net/set_cookie
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 5 Messages

09 déc. 2007, 19:54

Bonjour

Merci pour ta réponse.
J'ai regardé la page qui explique bien comment mettre un cookie.
Par coutume combien de temps applique t'on avant expiration ?
est-il utile qu'un cookie soit stocké sur le serveur ?

Maintenant comment vérifier si le visiteur a déjà consulter une page et si oui alors ne pas ouvrir la popup ?
C'est dans une condition if je suppose, mais la vérif je vois pas

Merci d'avance
Phil

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

09 déc. 2007, 20:14

Par coutume combien de temps applique t'on avant expiration ?
Il n'y a pas de règle en la matière, ça dépend de leur utilisation...
1 heure, 1 jour, 1 mois, 1 an... à toi de décider quel est le plus pertinent pour ton utilisation :)
est-il utile qu'un cookie soit stocké sur le serveur ?
Cookie stocké sur un serveur = session
http://fr.php.net/session
Mais dans ton cas ça ne présente pas d'intérêt à mon avis...
Maintenant comment vérifier si le visiteur a déjà consulter une page et si oui alors ne pas ouvrir la popup ?
C'est dans une condition if je suppose, mais la vérif je vois pas
Sur ta page d'accueil, tu vérifies à chaque fois si un cookie existe:
- si oui alors tu ne fais rien (car ton visiteur est déjà passé sur ta page sondage)
- si non alors:
1) tu crées le cookie.
2) tu affiches le code d'ouverture de la popup.
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 5 Messages

09 déc. 2007, 20:35

Je ne suis donc pas obligé d'utiliser tous les paramètres de setcookie ?

Sur ta page d'accueil, tu vérifies à chaque fois si un cookie existe:
- si oui alors tu ne fais rien (car ton visiteur est déjà passé sur ta page sondage)
- si non alors:
1) tu crées le cookie.
2) tu affiches le code d'ouverture de la popup.
Donc pour vérifier si un cookie existe ça donnerait ça ?

Code : Tout sélectionner

if ($_COOKIE['cookie']) { ..... }
Pourquoi créer le cookie si le cookie n'existe pas ? Je ne vois pas alors quel cookie il faut vérifier avant
Je pensais qu'il fallait créer le cookie à l'affichage de la page (avant le html)

Pour identifier le cookie que je cherche à trouver l'existence c'est en rapport avec le nom ou la valeur ?

Merci
Philippe

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

09 déc. 2007, 22:16

Non tu n'est pas obligé d'utiliser tous les paramètres de set_cookie, regarde les exemples de la doc PHP ;)
Pourquoi créer le cookie si le cookie n'existe pas ?
Le cookie va te servir de témoin pour chaque visiteur afin de savoir si il a déjà afficher durant sa navigation ta popup.
Pour identifier le cookie que je cherche à trouver l'existence c'est en rapport avec le nom ou la valeur ?
Choisis un nom de variable au hasard, met lui une valeur quelconque.
L'important n'est pas la valeur de la variable ni son nom mais juste son existence :)
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 5 Messages

10 déc. 2007, 23:35

Bonjour

Merci beaucoup pour ta réponse

Est il vrai qu'il faille mettre le script avant la balise html ? Pour insérer le script sur toutes mes pages je pensais l'intégrer au header qui est appelé en include mais dans le body.

Philippe

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

11 déc. 2007, 00:41

Oui c'est vrai.
Les cookies passent dans les en-têtes HTTP des pages donc il faut utiliser la fonction set_cookie() avant tout affichage HTML :)
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 5 Messages

15 déc. 2007, 20:31

Merci pour l'info

Alors voilà en fouinant sur le net j'ai compilé un script pour les cookies et pour les sessions. Ainsi si le navigateur n'accepte pas les cookies on ouvre une session.

Code : Tout sélectionner

session_start() $expire = 3600*24*365; $cook = setcookie("nomdevar","valeur",time()+$expire); if ($HTTP_COOKIE_VARS["nomdevar"]) { echo "Deja cookie present"; } else { if(setcookie("nomdevar","valeur",time()+$expire)) { echo "Cookie cree"; Ouverture du popup } else { echo "Vous n acceptez pas les cookies" if (!isset($_SESSION['popup']) { $_SESSION['popup']=TRUE; } if ($_SESSION['popup']==TRUE) { Ouverture du popup } } }
Dans la popup :

Code : Tout sélectionner

session_start() $_SESSION['popup']=FALSE;
Est-ce que ce script est sensé ?
Merci
Philippe