Form.php (контроллер)
public function dispdata()
{
$result['data']=$this->Form_model->displayrecords();
$this->load->view('display_records',$result);
if (!$this->session->userdata('ci_session'))
{
redirect('Form/login');
}
else
{
$this->session->set_tempdata('item',$result,5);
}
}
display_records (вид)
<?php
if($this->session->tempdata('item')){
redirect('Form/login');
}
?>
Я пытаюсь работать с концепцией tempdata. у меня есть форма регистрации, где я сохранил все зарегистрированные данные в базе данных и те данные о базе данных, которые я отобразил
это на странице просмотра.
как это я отобразил все детали базы данных на странице просмотра, которая просматривает страницу, которую я пытаюсь отобразить только в течение 5 секунд и через 5 секунд она должна перенаправить на страницу входа в систему. Я пытался с приведенным выше кодом, но он не работает, пожалуйста, кто-нибудь может сказать мне, где я иду не так?
tempdata
Функция для сессий влияет только на то, как долго данные могут быть сохранены. Удаление данных через 5 секунд в вашем случае не приведет к изменению чего-либо еще на странице.
Насколько я могу сказать, вам не нужно tempdata
совсем. Попробуйте это, чтобы увидеть, если вы получаете поведение, которое вы хотите.
public function dispdata()
{
if (!$this->session->userdata('ci_session'))
{
redirect('Form/login');
}
$result['data']=$this->Form_model->displayrecords();
$this->load->view('display_records',$result);
// sleep for 5 seconds
sleep(5);
redirect('Form/login');
}
Почему я удалил else
из вашего кода? Так как redirect
не возвращает — завершает выполнение скрипта. Итак, когда if
оценивает к истине, и перенаправление выполняет этот сценарий.
Других решений пока нет …