Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP - CodeIgniter сессии на ПК и планшете . не знаю уже что делать / 1 сообщений из 1, страница 1 из 1
20.02.2015, 03:46
    #38884577
ray1978
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PHP - CodeIgniter сессии на ПК и планшете . не знаю уже что делать
Суть вопроса:

Сессия CI работает без проблем на сайте при работе на ПК на всех стандартных сегодняшних браузерах.

Однако, если сайт открыть на планшете ( на моем Samsung galaxy tab 10 и на телефоне Lenovo (все на Андроиде.)
То Сессии CI не работают. Они просто не сохраняются.

Переделываем CI сессию на PHP сессию (меняем команды) - все везде работает.

Сессия используется для передачи сохраненного параметра из контролера в модуль.
Назначение моей сессии - это одновременно запоминать три параметра сортировки/отбора, чтобы выполнить запрос к БД.

Вот, что может быть за проблема?

CI - последний версии 2.

сессии используют таблицу БД.

уже взял чистый код, стандартный контроллер welcome и отображение welcome_view (вывел ссылки сортировки и отборы) - не работает.


(не ругайтесь, пожалуйста, за вставки кода - вообще, первый раз это делаю)





CONTROLLER


Код: php
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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 
// php session
session_start();
 
class Welcome extends Controller {
 
 
    private $defaultSortOtbor = array('sort'=>'name',
                                    'categ'=>'all',
                                    'razdel'=>'all'
                                    );
 
 
    function Welcome()
    {
        parent::Controller();   
    }
 
 
    // вывод страницы со списком материалов по-умолчанию
    // все сортировки и отборы - сброшены
    public function index()
    {
        // CI session
        //$this->session->set_userdata('paramSortOtbor',$this->defaultSortOtbor);
        
        // php session
        $_SESSION['paramSortOtbor_1'] = $this->defaultSortOtbor;
        
        $this->load->view('welcome_message');
    }
    
    
    // вывод страницы со списком материалов с учетом сортировок и отборов
    public function showSortOtbor()
    {
        $this->load->view('welcome_message');
    }
    
    
    
    // изменяет параметр сортировки SORT в сессии
    public function sort($tekSort = 'all')
    {
        // CI session
        //$Sess_SortOtbor = $this->session->userdata('paramSortOtbor');
        
        // php session
        $Sess_SortOtbor = $_SESSION['paramSortOtbor_1'];
        
        $data = array();
        $data['sort'] = $tekSort;
        $data['categ'] = $Sess_SortOtbor['categ'];
        $data['razdel'] = $Sess_SortOtbor['razdel'];
        
        // CI session
        //$this->session->set_userdata('paramSortOtbor',$data);
        // php session
        $_SESSION['paramSortOtbor_1'] = $data;
        
        $this->showSortOtbor();
    } // sort
    
    
    
    // изменяет параметры отборов Categ или Razdel в сессии
    public function otbor($vid='',$tekOtbor = 'all')
    {
        // CI session
        //$Sess_SortOtbor = $this->session->userdata('paramSortOtbor');
        // php session
        $Sess_SortOtbor = $_SESSION['paramSortOtbor_1'];
        
        $data = array();
        $data['sort'] = $Sess_SortOtbor['sort'];
        
        if($vid == 'categ')
        {
            $data['categ'] = $tekOtbor;
            $data['razdel'] = $Sess_SortOtbor['razdel'];    
        }
        elseif($vid == 'razdel')
        {
            $data['categ'] = $Sess_SortOtbor['categ'];  
            $data['razdel'] = $tekOtbor;
        }
        else
        {
            echo 'Страница 404';
            exit;
        }
        
        // CI session
        //$this->session->set_userdata('paramSortOtbor',$data);
        // php session
        $_SESSION['paramSortOtbor_1'] = $data;
        $this->showSortOtbor();
        
    } // end otbor()
    
}







VIEW (html, head, body - я не стал здесь приводить. только содержимое body)


Код: php
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.
35.
36.
37.
<div id="container">
    
<h1>Проверка работы сессий</h1>
    <p><a href="<?=base_url()?>welcome/index/">Вывод по-умолчанию</a></p>
    <?
        echo '<pre>';
            // CI session
            //var_dump($this->session->userdata('paramSortOtbor'));
            // php session
            var_dump($_SESSION['paramSortOtbor_1']);
        echo '</pre>';
    ?>
    
    <div>
        Сортировка:
        <ul>
            <li><a href="<?=base_url()?>welcome/sort/name/">Наименование</a></li>
            <li><a href="<?=base_url()?>welcome/sort/hits/">Просмотров</a></li>
            <li><a href="<?=base_url()?>welcome/sort/visib/">Видимость</a></li>
        </ul>
        
        Категории статей:
        <ul>
            <li><a href="<?=base_url()?>welcome/otbor/categ/all/">Все категории</a></li>
            <li><a href="<?=base_url()?>welcome/otbor/categ/1/">Категория 1</a></li>
            <li><a href="<?=base_url()?>welcome/otbor/categ/2/">Категория 2</a></li>
        </ul>
        
        Разделы статей:
        <ul>
            <li><a href="<?=base_url()?>welcome/otbor/razdel/all/">Все категории</a></li>
            <li><a href="<?=base_url()?>welcome/otbor/razdel/15/">Раздел 1</a></li>
            <li><a href="<?=base_url()?>welcome/otbor/razdel/4/">Раздел  2</a></li>
        </ul>
    </div>
    
</div>





Спасибо

Добавлено через 11 минут
добавление к посту

Нажимаем на ссылки в welcome_view и смотрим как меняются параметры сортировки/и отборов в сессии

по умолчанию:
name
all
all

при работающем варианте меняются все три параметра. Но они всегда есть три.

на планшете же - при первом открытии страницы
name
all
all

а дальше, при выборе параметра, предыдущие два просто исчезают, а остается только тот, по которому нажали.

Так срабатывает CI-сессия на планшете и телефоне, хотя на ПК - все Ок
переписываем команды сессии на PHP сессии - и везде работает как надо.

Вот в этом и вопрос - что с сессиям в Codeigniter делать для планшета.?
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / PHP - CodeIgniter сессии на ПК и планшете . не знаю уже что делать / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]