<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class VerifyLogin extends CI_Controller
{
public function __construct()
{
parent::__construct();
//Model for fetching users in database
$this->load->model('user', '', TRUE);
}
public function index()
{
//Load method to help verify form credentials
$this->load->library('form_validation');
//-----------------------------------------------
//Verify Existance of values in login form fields
//-----------------------------------------------
//Validate existance of username field value
$this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean');
//Validate existance of password field value, and if exists then call 'check_database' func
$this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean|callback_check_database');
//If the form validation is false (i.e. Missing form fields)
if($this->form_validation->run() == FALSE){
//Redirect back to login page
$this->load->view('general-Login');
}
//Login Success, goto main-page
else{
//Go to main page
redirect('Main', 'refresh');
}
}
function check_database($password)
{
//Field validation succeeded. Validate against database
$username = $this->input->post('username');
//Check the username and password against database
$result = $this->user->login($username, $password);
//If there is a result
if($result){
//will be used for session information
$sess_array = array();
foreach ($result as $row){
$sess_array= array(
'id' => $row->id,
'username' => $row->username
);
//Session set as logged in
$this->session->set_userdata('logged_in', $sess_array);
}
return true;
}
//No existance of user or, incorrect password
else{
//Send Message of incorrect username or password
$this->form_validation->set_message('check_database', 'Invalid Username or Password');
return false;
}
}
}
所以我有一个verifylogin控制器来处理我的登录页面中的表单数据。数据库访问非常有效,一切正常,直到我进入重定向功能。我尝试使用刷新重定向,它只给了我一个“未定义”的页面。现在它会突然工作,当我删除'刷新'并只保留控制器名称,但我想弄清楚为什么这'刷新'将无法正常工作。
我已停用.htaccess
我已尝试将$config['uri_protocol']
设置为REQUEST_URI
,AUTO
和PATH_INFO
没有运气。
另外,这是我第一次在网上提交给论坛这样的东西,所以请......温柔。
答案 0 :(得分:1)
首先,欢迎来到Stack Overflow。
其次,如果没有“刷新”的redirect()有效,我会用它运行并稍后弄清楚。
有关更深入的解释,“刷新”尝试对类似于以下内容的页面进行类似元的刷新:
<meta http-equiv="refresh" content="0;URL='http://example.com/'">
(注意:它不会在您的视图中执行此操作,而是在响应中向浏览器发送类似的代码段)
您使用的浏览器是什么?什么版本?希望它是最新的,因为这可能会对刷新的工作方式产生影响。
答案 1 :(得分:1)
我有类似的问题。例如。在我的localhost刷新不起作用,并在托管服务提供商设置它工作。也许是Apache / PHP配置中的东西。去没有刷新,没关系。我不认为它与浏览器有关。发生这种情况时我使用的是同一个浏览器。