Disclaimer cookie

Messages postés
7
Date d'inscription
samedi 29 mai 2010
Statut
Membre
Dernière intervention
8 juin 2010
- - Dernière réponse : Arto_8000
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
- 9 juin 2010 à 14:59
Bonjour,

Avant d'introduire mon sujet j'aimerais dire que j'ai cherché la réponse à ma question dans tout le forum et même sur d'autres avant de poster.

Mon site internet à une page d'avertissement, les internautes peuvent choisir leurs pays sur une plateforme flash et sont ensuite dirigé sur le site de proposé pour leurs pays.

J'aimerais gagner du temps et faire en sorte que cette page ne s'affiche qu'une seule fois et que les infos soient stocké dans un cookie. Une fois que l'utilisateur quittera le site la page de destination sera enregistré et lors de la prochaine visite l'utilisateur sera dirigé directement vers la page principale du site.

Voici le script que j'ai installé :

<?php
if(!getCookie("dejavenu"));
{
expdate.setTime(expdate.getTime() + 1000 * 60 * 60 * 24 * 365); 
setCookie("dejavenu","true",expdate);
}
else if($_Cookie['dejavenu']=="true");
{
include("links.html");
}
?>


Je reçois ce message : Parse error: syntax error, unexpected T_ELSE in .../public_html/index.php on line 7

la ligne 7 : else if($_Cookie['dejavenu']=="true");

Je ne trouve pas le problème. Help me
Afficher la suite 

8 réponses

Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
5
0
Merci
Salut,

Quand tu utilises un «;» sur la même ligne que ton if, c'est que ton code se termine sur cette même ligne. En gros ton code revient à ceci :

<?php
if(!getCookie("dejavenu"))
{

}
{
expdate.setTime(expdate.getTime() + 1000 * 60 * 60 * 24 * 365); 
setCookie("dejavenu","true",expdate);
}
else if($_Cookie['dejavenu']=="true")
{

}
{
include("links.html");
}
?>


Ce que tu veux probablement faire c'est ceci :

<?php
if(!getCookie("dejavenu"))
{
expdate.setTime(expdate.getTime() + 1000 * 60 * 60 * 24 * 365); 
setCookie("dejavenu","true",expdate);
}
else if($_Cookie['dejavenu']=="true")
{
include("links.html");
}
?>
Commenter la réponse de Arto_8000
Messages postés
7
Date d'inscription
samedi 29 mai 2010
Statut
Membre
Dernière intervention
8 juin 2010
0
Merci
Salut.

Merci pour ton aide Arto_8000 mais j'ai toujours un petit souci avec ton code.

Fatal error: Call to undefined function getcookie() in .../index.php on line 2
Commenter la réponse de Rohenheim
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
5
0
Merci
Il faut utiliser le tableau asssociatif $_COOKIE pour lire les cookies. Aussi la façon que tu utilises pour définir l'expiration est incorrecte.

<?php
if(!$_COOKIE["dejavenu"])
{
$expdate = (time() + 60 * 60 * 24 * 365); 
setCookie("dejavenu","true",$expdate);
}
else if($_COOKIE['dejavenu']=="true")
{
include("links.html");
}
?>
Commenter la réponse de Arto_8000
Messages postés
7
Date d'inscription
samedi 29 mai 2010
Statut
Membre
Dernière intervention
8 juin 2010
0
Merci
Merci beaucoup pour ton aide Arto_8000
Commenter la réponse de Rohenheim
Messages postés
7
Date d'inscription
samedi 29 mai 2010
Statut
Membre
Dernière intervention
8 juin 2010
0
Merci
J'ai juste une autre question concernant le disclaimer.

Voila ce que j'ai installé sur le site :

<?php
if(!$_COOKIE["dejavenu"])
{
$expdate = (time() + 60 * 60 * 24 * 365); 
setCookie("dejavenu","true",$expdate);
include("disclaimer.php");
}
else if($_COOKIE['dejavenu']=="true")
{
include("links.html");
}
?>


Imaginons que l'utilisateur clic sur "quitter" au lieu de "Entrer". Une fois que le cookie est installé la page d'avertissement ne s'affiche plus même si la première fois l'utilisateur n'a pas voulu entrer sur le site.

Si l'utilisateur ne souhaite pas entrer et clic sur "quitter" il est automatiquement dirigé vers google.com.

Les boutons quitter et entrer sont intégrés dans une animation flash. Est-il possible de ne pas installer le cookie si l'utilisateur est dirigé vers google.com?
Commenter la réponse de Rohenheim
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
5
0
Merci
Ce que tu serais mieux de faire, c'est que tu définisses ton cookie dejavenu une fois que la personne a cliqué sur Accepter et non avant. Ta page disclaimer devrait contenir quelque chose comme ceci :

<?php
if (isset($_POST['action']) && $_POST['action']=='Accepter') {
    $expdate = (time() + 60 * 60 * 24 * 365); 
    setCookie("dejavenu","true",$expdate);
    header("Location: tapagenormal.php");
    exit;
}
?>

blablabla
<form method="POST">


</form>
Commenter la réponse de Arto_8000
Messages postés
7
Date d'inscription
samedi 29 mai 2010
Statut
Membre
Dernière intervention
8 juin 2010
0
Merci
Merci beaucoup pour ton aide.

Les boutons sont intégré dans une animation flash, je ne peux pas mettre de valeur et les intégrer dans le script PHP. Je pense pas qu'on puisse jouer avec l'actionscript.

Je ne sais plus quoi faire. J'ai tourné le problème dans tout les sens mais je ne trouve aucune solution. Même si l'utilisateur clic sur quitter, pour sa prochaine visite la page d'avertissement ne s'affiche pas et il est vraiment impossible pour moi de laisser de coté cet animation flash. Que faire?

Est ce qu'il est possible de placer un deuxième cookie sur la page index.html pour prouver que l'utilisateur à accédé à l'index du site. Ainsi à la page d'avertissement il serait possible de définir si l'utilisateur à cliqué sur entrer ou quitter. Si l'utilisateur a cliqué sur enter le cookie qui se trouve sur la page d'accueil aurait enregistré le passage et ainsi l'utilisateur pourrait accéder au site dans le cas contraire il sera dirigé vers google.

Je ne suis pas sur d'avoir été claire mais c'est la seule chose que j'ai pu trouver et je ne sais pas si c'est possible???

Merci
Commenter la réponse de Rohenheim
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
5
0
Merci
Pour ce qui est du Flash, tu peux quand même faire une requête POST vers le serveur quand la personne clique sur un bouton dans ton animation. Comment ? C'est un peu loin dans ma mémoire, il faudrait que tu cherches un peu sur le net ou que tu poses une question sur http://www.flashkod.com/.

Pour vérifier si la personne a accepté ou non dans les autres pages que ton disclaimer.php tu devrais avoir ceci en haut de tes pages :

<?php
if (!isset($_COOKIE['dejavenu']) || $_COOKIE['dejavenu']=='false') {
     header('Location: disclaimer.php');
     exit;
}
?>
Commenter la réponse de Arto_8000