Я использую простую функцию в codeigniter для перенаправления моей страницы после успешного входа в систему.Codeigniter: php не работает в первый раз после обновления
При загрузке страницы загружается контент, а не код между тегами php.
Это не проблема rewrite_short_tags
, о которой я думаю, потому что, когда я нажимаю F5, все хорошо загружается.
Почему мне нужно обновить страницу с помощью F5, чтобы увидеть результаты?
Контроллер:
session_start();
class Login_form extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->model('user','',TRUE);
}
function index()
{
//This method will have the credentials validation
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean');
$this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean|callback_check_database');
if($this->form_validation->run() == FALSE)
{
//Field validation failed. User redirected to login page
//$this->load->view('login_view');
echo validation_errors();
include "application/views/forms/login.php";
}
else
{
//Refresh index
redirect('index', 'refresh');
}
}
function check_database($password)
{
//Field validation succeeded. Validate against database
$username = $this->input->post('username');
//query the database
$result = $this->user->login($username, $password);
if($result)
{
$sess_array = array();
foreach($result as $row)
{
$sess_array = array(
'id' => $row->id,
'username' => $row->username
);
$this->session->set_userdata('logged_in', $sess_array);
}
return TRUE;
}
else
{
$this->form_validation->set_message('check_database', 'Invalid username or password');
return false;
}
}
function logout() {
$this->session->unset_userdata('logged_in');
session_destroy();
redirect('index', 'refresh');
}
}
Вид:
<h1>My cms</h1>
<?php
if (!$this->session->userdata('logged_in')) {
echo form_open('login_form', array('id' => 'loginForm')); ?>
<div id="formLoginDiv">
<?php include "forms/login.php"; ?>
</div>
</form>
<?php } else { ?>
<a href="<?php echo site_url('login_form/logout')?>">Logout</a>
<?php } ?>
Я бегу вид как: redirect('index', 'refresh');
Теперь он загружает все хорошо, когда при первом запуске этой точки зрения. После проверки, сделанной ajax и возвращенной true, я обновляю это представление. Но ссылка Logout не просматривается.
Update:
Я попытался no-cache
заголовков и поместил их в разных местах (даже в главном index.php).
Второе, я не использую var $template
var, поэтому я получаю сообщение об ошибке с этим.
Я добавил соответствующий код и обновления на вопрос дается ОП в 2 «ответы» и проголосовали заново. – GitaarLAB