Php codeigniter引导登录表单问题
我做这件事已经有一段时间没有用了。我对codeigniter引导登录有问题。基本上这就是我所拥有的: login.php-controllerPhp codeigniter引导登录表单问题,php,codeigniter,twitter-bootstrap,Php,Codeigniter,Twitter Bootstrap,我做这件事已经有一段时间没有用了。我对codeigniter引导登录有问题。基本上这就是我所拥有的: login.php-controller <?php if (!defined('BASEPATH')) die(); class Login extends Main_Controller { function __construct(){ parent::__construct(); } public function index() { $this-&g
<?php if (!defined('BASEPATH')) die();
class Login extends Main_Controller {
function __construct(){
parent::__construct();
}
public function index()
{
$this->load->view('include/header');
$this->load->view('login_view');
$this->load->view('include/footer');
}
public function process(){
// Load the model
$this->load->model('login_model');
// Validate the user can login
$result = $this->login_model->validate();
// Now we verify the result
if(! $result){
// If user did not validate, then show them login page again
$this->index();
}else{
// If user did validate,
// Send them to members area
redirect('home');
}
}
}
想必
class Login extends CI_Controller {
除非已经有主控制器扩展CI
想必
class Login extends CI_Controller {
除非您的主控制器已经扩展了CI,否则如果您没有使用.htaccess删除此处显示的index.php,请尝试以下操作
<?php echo base_url('index.php/login/process');?>
如果您没有使用.htaccess删除此处显示的index.php,请尝试以下操作
<?php echo base_url('index.php/login/process');?>
尝试更换
<?php echo base_url('login/process');?>
别忘了前面的斜杠。这只是一个猜测,因为我们没有提供有关您设置的足够信息
编辑::
注意:请先阅读我的评论
首先在autoload.php加载会话库中。然后在控制器中修改process()函数,如下所示:
public function process(){
$this->load->model('login_model');
$result = $this->login_model->validate();
if(! $result){
$this->index();
}else{
$data = array(
'username' => $this->input->post('username'),
'is_logged_in' => true
);
$this->session->set_userdata($data);
redirect('home');
}
然后在home.php控制器中:
function __construct()
{
parent::Controller();
$this->is_logged_in();
}
function is_logged_in()
{
$is_logged_in = $this->session->userdata('is_logged_in');
if(!isset($is_logged_in) || $is_logged_in != true)
{
redirect('login');
}
}
您需要设置会话,以便成员区域知道用户已登录。您可以在config.php中管理会话长度和其他属性
如果有帮助,请告诉我。尝试更换
<?php echo base_url('login/process');?>
别忘了前面的斜杠。这只是一个猜测,因为我们没有提供有关您设置的足够信息
编辑::
注意:请先阅读我的评论
首先在autoload.php加载会话库中。然后在控制器中修改process()函数,如下所示:
public function process(){
$this->load->model('login_model');
$result = $this->login_model->validate();
if(! $result){
$this->index();
}else{
$data = array(
'username' => $this->input->post('username'),
'is_logged_in' => true
);
$this->session->set_userdata($data);
redirect('home');
}
然后在home.php控制器中:
function __construct()
{
parent::Controller();
$this->is_logged_in();
}
function is_logged_in()
{
$is_logged_in = $this->session->userdata('is_logged_in');
if(!isset($is_logged_in) || $is_logged_in != true)
{
redirect('login');
}
}
您需要设置会话,以便成员区域知道用户已登录。您可以在config.php中管理会话长度和其他属性
如果有帮助,请告诉我。服务器产生了什么错误?在此服务器上找不到请求的URL。参考页面上的链接似乎错误或过时。请将错误告知该页的作者。为了安全起见,你真的应该考虑一下。我建议使用for Codeigniter,因为它可以为您完成所有这些任务。服务器产生的错误是什么?在此服务器上找不到请求的URL。参考页面上的链接似乎错误或过时。请将错误告知该页的作者。为了安全起见,你真的应该考虑一下。我建议使用for Codeigniter,因为它可以为您完成所有这些事情?基本上-Apache/Php记录触发的是什么?您可以删除:您可以加载index.Php吗?基本上-Apache/Php记录了什么?您可以删除以下几个问题吗。您使用的是什么版本的codeigniter?您是否使用.htaccess?您正在尝试从url中删除index.php吗?根据您对@azngunit81的回答,我相信您的设置不正确。适用于我,但它会重定向回登录页面:(好的,在这种情况下,您需要使用
,但您真正缺少的是设置会话。您验证凭据,但下一页不知道。请参阅上面的我的编辑。我将在接下来的10分钟内从该评论中发布两个问题。您使用的是什么版本的codeigniter?是否使用.htaccess?是否尝试删除e index.php from url?根据您对@azngunit81的回答,我相信您设置不正确。对我来说是可行的,但它会重定向回登录页面:(好的,在这种情况下,您需要使用
,但您真正缺少的是设置会话。您验证凭据,但下一页不知道。请参阅上面的我的编辑。我将在接下来的10分钟内发布此评论,它是否不使用此验证?与其重定向回登录页,不如使用某种回音进行测试我试着回显,效果很好,但当我将其重定向到home时,它不断返回logintry,将重定向更改为header(“Location:/home.php”);同时检查并确保您的会话变量已存储。它是否正在验证?与其重定向回登录页面,不如使用某种回音对其进行测试。我尝试回音,但效果良好,但当我将其重定向到主页时,它不断返回logintry,更改重定向到标题(“Location:/home.php”);还要检查并确保存储了会话变量