Не могу читать куки через PHP или Javascript на iPad - PullRequest
5 голосов
/ 13 сентября 2011

В настоящее время у меня возникают некоторые проблемы при попытке чтения файлов cookie с использованием PHP или Javascript.Я пробовал использовать:

if(!$_COOKIE['popup_closed']
&& !isset($_COOKIE['username'])
&& !isset($_COOKIE['password'])
)

И я пробовал:

if(
$.cookie('popup_closed') == null
&& $.cookie('username') == null
&& $.cookie('password') == null) {
doStuff();
}

(с помощью плагина jquery.cookie)

И ни один из них не работает на iPad.Он отлично работает во всех браузерах, я пробовал поискать в Google проблему, но, похоже, информации о чтении файлов cookie на iPad не так много.

Спасибо за любую помощь, которую вы, ребята, можете оказать!

Ответы [ 2 ]

7 голосов
/ 16 сентября 2011

Это действительно обходной путь, но вы можете использовать локальное хранилище, если оно доступно - по крайней мере, я успешно использовал его в iPad / iPhone.

Например, с таким решением.

function saveData(name, value) {
    if (typeof(localStorage) != 'undefined') {
        localStorage.setItem(name, value);
    } else {
        createCookie(name, value, 7);
    }
}

function loadData(name) {
    var temp_value = '';

    if (typeof(localStorage) != 'undefined') {
        temp_value = localStorage.getItem(name);
    } else {
        temp_value = readCookie(name);
    }

    return temp_value;
}

function eraseData(name) {
    if (typeof(localStorage) != 'undefined') {
        localStorage.removeItem(name);
    } else {
         eraseCookie(name);
    }

}

function createCookie(name,value,days) {
    var expires = "";

    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toGMTString();
    }
    else {
        expires = "";
    }
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') {
            c = c.substring(1,c.length);
        } 
        if (c.indexOf(nameEQ) === 0) {
            return c.substring(nameEQ.length, c.length);
        }
    }
    return null;
}

function eraseCookie(name) {
    createCookie(name,"",-1);
}
0 голосов
/ 16 сентября 2011

Взгляните ли вы на руководство относительно setcookie? Вы должны использовать все переменные, возможно, это решает тот факт, что вы не можете получить доступ к своим куки с JS? Кроме того, использование родного JS для доступа к файлам cookie (вместо jQuery), разве это не работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...