Bonjour,
voilà mon problème : J'utilise un thème switcher sur mon site.
En clair je change mon template en fonction de 2 url de provenance, on va dire google.com et yahoo.com.
Donc je récupère avec HTTP_REFERER l'url d'origine (par exemple google.com) et je crée un cookie avec en paramètre le nom du template (selon l'url d'origine) s'il n'en existe pas et je recharge la page avec un header location --> la page est rechargée avec le nouveau template (en fonction de google.com dans notre exemple)
Une fois arrivé sur la page chargée on refait le test donc cette fois-ci le cookie existe, 2 cas se présentent :
- Le visiteurs se balade sur le site et donc avec le même cookie donc il se passe rien, le template reste le même.
- Le visiteur va sur la 2ème url d'origine (yahoo.com) --> le template doit changer, donc rechargement de la page mais là le test se fait en boucle infini car le cookie existe toujours et apparement le HTTP_REFERER resterai le même.
Conclusion :header location à l'infini
Voici le code :
Quelqu'un aurait une solution pour faire un test et éviter la boucle infini
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 if (!isset($_COOKIE["wptheme"])) { if (mb_substr_count($_SERVER['HTTP_REFERER'], 'google.com')==1) { $cookiewptheme = "Template google"; $expire = time() + 30000000; $urlinfo = parse_url(get_settings('siteurl')); $path = $urlinfo['path']; $domain = $urlinfo['host']; setcookie("wptheme",$cookiewptheme,$expire,$path,$domain); header("Location: http://www.monsite-1.fr/"); } elseif (mb_substr_count($_SERVER['HTTP_REFERER'], 'yahoo.com')==1) { $cookiewptheme = "Template yahoo"; $expire = time() + 30000000; $urlinfo = parse_url(get_settings('siteurl')); $path = $urlinfo['path']; $domain = $urlinfo['host']; setcookie("wptheme",$cookiewptheme,$expire,$path,$domain); header("Location: http://www.monsite-2.fr/"); } } elseif (isset($_COOKIE["wptheme"])) { if (mb_substr_count($_SERVER['HTTP_REFERER'], 'google.com')==1) { header("Location: http://www.monsite-1.fr/"); } elseif (mb_substr_count($_SERVER['HTTP_REFERER'], 'yahoo.com')==1) { header("Location: http://www.monsite-2.fr/"); } }
Partager