Итак, проблема в следующем: сеансы сохраняются в базе данных, я установил сеанс пользовательских данных, но к нему невозможно получить доступ, не сделав предварительно ajax-сообщение в первом страница.
Большинство переменных и функций будут обрезаны и/или изменены с тех пор, как я подписал соглашение о неразглашении.
В самом первом контроллере мы читаем необработанные входные данные из веб-просмотра Android и устанавливаем пользовательские данные следующим образом:
Код: Выделить всё
//this data_one is from android webview
$data_one = file_get_contents('php://input');
if($data_one){
$obj = (array) json_decode($data_one);
$this->phone = '';
if(isset($obj['phone'])){
$this->phone = $obj['phone'];
}
}
if($this->phone != ''){
$session_data = array('page_data' => array("pg" => array("phone" => $this->phone)));
$this->session->set_userdata($session_data);
}
//there's some data thrown into the data array before loading view, but NDA, so trimmed.
$this->load->view('first_page', $data);
«Другая страница» использует пользовательские данные номера телефона с первой страницы для получения других данных. Однако, если пользователь не выбрал ни одного параметра на первой странице, пользовательские данные возвращаются пустыми, и по умолчанию используется инициализация переменной $phone в контроллере «Другая страница».
Вы, ребята, знаете, почему это так? я застрял на этом несколько дней, и мое «пещерное решение» состоит в том, чтобы просто переместить ссылку «Другая страница» на «Следующую страницу», однако это плохой UX, поскольку пользователь ДОЛЖЕН иметь возможность получить доступ к «Другой странице» из любого места.
Подробнее здесь: https://stackoverflow.com/questions/616 ... eigniter-3
Мобильная версия