Мобильные браузеры не поддерживают переменные сеанса?

У меня есть версия браузера моего веб-приложения, и у меня есть некоторые значения, хранящиеся в файлах cookie. Теперь я делаю мобильную версию, и кажется, что мои файлы cookie не работают. Можно ли использовать файлы cookie на мобильных устройствах?

Я пытаюсь выполнить этот код, и мой php дает мне пустое значение:

$(document).ready(function() { var session_lang= '<?php if(isset($_SESSION['SESS_LANGUAGE'])) echo $_SESSION['SESS_LANGUAGE'];?>'; if (session_lang!='') { check_and_change(session_lang); } }); 

Есть ли другой способ хранения данных во внутренней памяти, чтобы он мог работать как cookie? Поддерживает ли мобильные устройства переменные сеанса? Я смотрю на firebug, и я вижу, что я могу создать переменную сессии, но когда я хочу ее прочитать, она равна нулю. Что может быть проблемой и как ее решить?

EDIT: Я поставлю вам почти весь код, чтобы вы могли видеть, что я делаю … btw. этот код работает нормально в браузере ПК.

Javascript файл:

 $(document).ready(function() { function languageChange() { var lang = $('#websites1 option:selected').val(); return lang; } $('#websites1').change(function(e) { var lang = languageChange(); var dataString = 'lang=' + lang; $.ajax({ type: "POST", url: "pass_value.php", data: dataString, dataType: 'json', cache: false, success: function(response) { check_and_change(response.message); } }); return false; }); } ); function check_and_change(lang) { switch (lang) { //do something } } 

Тогда эта первая часть, которую я поставил выше, находится на фактическом сайте php, который я просматриваю и который открывается:

И последнее: pass_value.php:

 <?php session_start(); $_SESSION['SESS_LANGUAGE'] = $_POST['lang']; print json_encode(array('message' => $_SESSION['SESS_LANGUAGE'])); die(); ?> 

Я действительно не знаю, почему этот код не работает на мобильных телефонах.

Cookies определенно работают на мобильных браузерах. Вы говорите: «Я смотрю на firebug», что заставляет меня думать, что вы на самом деле не смотрите на него по телефону.

Вы начали сеанс и включили отчет об ошибках ?

У меня была аналогичная ситуация, и я обнаружил, что перед тем, как мой планшет назвал сценарий, указанный в параметре URL- .ajax( ) вызова .ajax( ) , он снова вызывал скрипт index.php .

То же самое с моим телефоном. Поскольку я инициализировал свои переменные сеанса в index.php , они все время возвращались к своим начальным значениям (что выглядело так, будто они не были правильно сохранены между страницами).

Я никогда не выяснял, почему index.php получил повторный вызов, но я добавил, что if !isset( ) проверяет операторы инициализации и выясняет это.

На Android, включив «Data Saver», эффективно уничтожил сеанс. У меня есть сценарий входа в систему, который будет перенаправлен на предыдущую страницу при успешном входе в систему. Работал, пока я не включил Data Saver. Отключение его заставило его снова работать. Google заявляет, что Data Saver может влиять на защищенные страницы, которые, как я полагаю, включает мой скрипт, который не находится на веб-сайте HTTPS.