Versteht hier jemand das iPhone? (update2: fixed!)

Montag, 22.4.2019, 10:29 > daMax

Kann mir mal jemand sagen, warum diese Cookie-Meldung

auf dem iPhone immer wieder kommt? Also auch, nachdem man "Cool, her damit!" geklickt hat und sich dann z.B. einen anderen Artikel anzeigen lässt? Das Javascript dazu sieht so aus:

Update: des Rätsels Lösung war mal wieder... JavaScript!

function checkCookieBar() {
var cp = document.getElementById("cookiepolicy");
if (getCookie("todamax_cookie_consent") === "true") {
cp.style.display = "none";
}
}
function hideCookieBar() {
var cp = document.getElementById("cookiepolicy");
cp.style.display = "none";
setCookie("todamax_cookie_consent", true, 356);
}
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays2460601000));
var expires = "expires="+ d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

Aufgerufen wird checkCookieBar(), das wiederum getCookie("todamax_cookie_consent") aufruft und überprüft, ob dieser Cookie schon gesetzt wurde. Der wird gesetzt, wenn man "Cool, her damit" anklickt.

Das funktioniert auf sämtlichen Betriebssystemen und Browsern auch ohne Probleme, nur das iPhone zickt rum. Warum?

SHOW COOKIES

Update: hm.... ein Klick auf den Link da oben zeigt auf "normalen" Geräten alle Cookies, die hier so gesetzt werden, aufm iPhone aber nur den PHPSESSIONID Cookie. Offenbar wird der todamax_cookie_consent-Cookie nicht gesetzt. Warum?

Update 2: okay, ich habe das Problem gefunden. Es gab die Funktion setCookie zweimal! Zum einen in der jsfunctions.js von meinem Theme und dann noch mal in dem Pro-Adblock-Plugin. Beide hatten einen falschen expires-String erzeugt, weil ein Leerzeichen gefehlt hatte, deshalb wurde expires nie korrekt gesetzt. Ich habe jetzt sämliche Funktionen korrigiert und umbenannt und schon klappt es auch mit dem iPhone.