Bonjour
Pour résoudre le problème de mon cache php ( => pages html ), j'ai mis en Javascript, le "user.bypass = true" de tarteaucitron.
Voici ce que celà donne :
Dans le ci-dessus, geoip.php rend le continent en deux lettres, avec geoip_continent_code_by_name().
Je suis obligé de mettre continent dans un cookie, sinon il serait undefined ( appel ajax asynchrone ).
Les autres solutions ( (session|local)storage ) , sont trop gourmandes en mémoire.
Il y a deux problèmes :
- Est-ce qu'il faut avoir ou non "user.bypass=true" dans la page de départ ?
C'est-à-dire : La première page doit-elle interdire les services et cookies ?
- Le Google Page Insight semble me donner un is_bypass=false, donc un user agent non présent dans l'expression rationnelle "path".
Ce serait super gentil, si vous pouviez m'indiquer ( à peu près ), la bonne expression pour le user agent du Google Page Insight.
Merci beaucoup pour votre aide.
Amicalement.
Pour résoudre le problème de mon cache php ( => pages html ), j'ai mis en Javascript, le "user.bypass = true" de tarteaucitron.
Voici ce que celà donne :
Code:
<script type="text/javascript">
var adr2;
var url;
var maintenant;
var future;
var str_future;
var user_agent;
var xsr;
var continent;
var old_continent;
var patt;
var is_bypass;
var etag;
var ts;
var end_cookie;
var str_cookie;
function getCookie(name)
{
if(document.cookie.length == 0)
return null;
var regSepCookie = new RegExp('; ', 'g');
var cookies = document.cookie.split(regSepCookie);
for(var i = 0; i < cookies.length; i++)
{
var regInfo = new RegExp('=', 'g');
var infos = cookies[i].split(regInfo);
if(infos[0] == name)
{
return unescape(infos[1]);
}
}
return null;
}
maintenant = new Date();
str_future = maintenant.toLocaleDateString();
var decomposed = str_future.split("/");
future=new Date(decomposed[2], decomposed[1]-1, +decomposed[0] + 365);
adr2='https://www.pronostics-courses.fr/tarteaucitron/new/geoip.php' + '?timestamp=' + maintenant.getTime();
ts=maintenant.toUTCString();
end_cookie=future.toUTCString();
etag=Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 7);
patt=new RegExp('(google|bingbot|bingpreview|msnbot|slurp|duckduckgo|baidu|yandex|sogou|exabot|facebook|facebot|archiver|aolbuild|teoma)', 'gi');
user_agent=navigator.userAgent;
is_bypass=patt.test(user_agent);
xsr=null;
xsr=createXsrObject();
xsr.onreadystatechange = function()
{
if(xsr.readyState == 4)
{
if(xsr.status == 200)
{
continent = xsr.responseText;
old_continent=getCookie('continent');
if (old_continent!=null)
{
continent = old_continent;
}
else
{
str_cookie='continent=' + continent + '; expires=' + end_cookie + '; path=/';
document.cookie=str_cookie;
}
}
}
}
xsr.open("GET", encodeURI(adr2), true);
xsr.setRequestHeader("X-Requested-Width", "XMLHttpRequest");
xsr.setRequestHeader("Cache-Control", "no-cache, must-revalidate, proxy-revalidate");
xsr.setRequestHeader("Pragma", "no-cache");
xsr.setRequestHeader("If-None-Match", etag);
xsr.setRequestHeader("If-Modified-Since", ts);
xsr.send(null);
old_continent=getCookie('continent');
if (old_continent!=null)
{
continent = old_continent;
}
else
{
continent='US';
}
if((is_bypass)||(continent!='EU'))
{
tarteaucitron.user.bypass = true;
}
</script>
Dans le ci-dessus, geoip.php rend le continent en deux lettres, avec geoip_continent_code_by_name().
Je suis obligé de mettre continent dans un cookie, sinon il serait undefined ( appel ajax asynchrone ).
Les autres solutions ( (session|local)storage ) , sont trop gourmandes en mémoire.
Il y a deux problèmes :
- Est-ce qu'il faut avoir ou non "user.bypass=true" dans la page de départ ?
C'est-à-dire : La première page doit-elle interdire les services et cookies ?
- Le Google Page Insight semble me donner un is_bypass=false, donc un user agent non présent dans l'expression rationnelle "path".
Ce serait super gentil, si vous pouviez m'indiquer ( à peu près ), la bonne expression pour le user agent du Google Page Insight.
Merci beaucoup pour votre aide.
Amicalement.