登录后重定向到另一个页面使用CodeIgniter框架

时间:2015-11-23 04:39:50

标签: php apache codeigniter

我创建了一个Login控制器,当我重定向到我网站的主页时,它不会重定向到我的视图,这是索引。

这是我的控制器(main.php):

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Main extends CI_Controller {

public function __construct()
     {
       parent::__construct();
     }

public function index()
{
    $this->load->view('login');
}

public function validate_credentials () {

            $this->load->model("membership_model");
            $query = $this->membership_model->validate();

            if($query){
                $data = array(
                    'username' => $this->input->post('username'),
                    'is_logged_in' => true
                );
                $this->session->set_userdata($data);
                redirect('Main/homepage1', 'refresh');
            }
            else {
                $this->index();
            }
        }

    public function homepage1 () {
        $this->load->view("index");
    }


  }

这是我在login_view.php

中的表单
<form class="form-login" method="post" name="redirect" action="<?php echo site_url("Main/validate_credentials"); ?>">
            <h2 class="form-login-heading">sign in now</h2>
            <div class="login-wrap">
                <input type="text" class="form-control" placeholder="User ID" autofocus value="<?php echo set_value('username'); ?>" >
                <br>
                <input type="password" class="form-control" placeholder="Password"  value = "<?php echo set_value('password'); ?>">
                <label class="checkbox">
                    <span class="pull-right">
                        <a data-toggle="modal" href="login.php#myModal"> Forgot Password?</a>

                    </span>
                </label>
                <button class="btn btn-theme btn-block" name="login" href="index.html" type="submit"><i class="fa fa-lock"></i> SIGN IN</button>
             </div>

             <?php  $this->load->view("modals/forgot_pass_modal"); ?>

          </form>

和我的模特:

<?php if( ! defined ('BASEPATH')) exit ('No direct script access allowed');

class Membership_model extends CI_Model{

    public function __construct()
     {
       parent::__construct();
     }

    public function validate () {
        $this->db->where('admin_username', $this->input->post('username'));
        $this->db->where("admin_pword", md5($this->input->post("password")));
        $query = $this->db->get("administration");

        if($query->num_rows() == 1){
            return true;
        }
    }


}
 ?>

有人能帮助我吗?因为这是我第一次使用这个PHP框架,如果你能帮助我,我真的很感激。

4 个答案:

答案 0 :(得分:1)

试试这个

在视图中

substringToIndex()

在控制器中

NSString

在模型中

objects["newlocation"] = newLocation;

答案 1 :(得分:1)

您在表单中遗漏了名称属性。

<input name="username" type="text" class="form-control" placeholder="User ID" autofocus value="<?php echo set_value('username'); ?>" >
       ^             ^
<input name="password" type="password" class="form-control" placeholder="Password"  value = "<?php echo set_value('password'); ?>">
       ^             ^

如果不指定名称,则尝试访问模型

通过更改您的代码应该工作。我知道休息一切都很好。

答案 2 :(得分:0)

您忘记在attributes

上添加表单login_view.php

将此view code替换为此...

<form class="form-login" method="post" name="redirect" action="<?php echo site_url("main/validate_credentials"); ?>">
        <h2 class="form-login-heading">sign in now</h2>
        <div class="login-wrap">
            <input name="username" type="text" class="form-control" placeholder="User ID" autofocus value="<?php echo set_value('username'); ?>" >
            <br>
            <input name="password" type="password" class="form-control" placeholder="Password"  value = "<?php echo set_value('password'); ?>">
            <label class="checkbox">
                <span class="pull-right">
                    <a data-toggle="modal" href="login.php#myModal"> Forgot Password?</a>

                </span>
            </label>
            <button class="btn btn-theme btn-block" name="login" type="submit"><i class="fa fa-lock"></i> SIGN IN</button>
         </div>

         <?php  $this->load->view("modals/forgot_pass_modal"); ?>

 </form>

用此

替换模型
 <?php if( ! defined ('BASEPATH')) exit ('No direct script access allowed');

            class Membership_model extends CI_Model{

                public function __construct()
                 {
                   parent::__construct();
                 }

                public function validate () {

                    $this->db->select('admin_username');
                    $this->db->where('admin_username', $this->input->post('username'));
                    $this->db->where("admin_pword", md5($this->input->post("password")));
                    $query = $this->db->get("administration");

                    return $query->row();
                }


            }
        ?>

控制器

使用此代码替换validate_credentials方法

 public function validate_credentials () {

            $this->load->model("membership_model");
            $query = $this->membership_model->validate();

            if($query->admin_username){
                $data = array(
                    'username' => $this->input->post('username'),
                    'is_logged_in' => true
                );
                $this->session->set_userdata($data);
                redirect(base_url().'main/homepage1');
            }
            else {
                $this->index();
            }
        }

答案 3 :(得分:0)

因为您的问题只是重定向,请按照以下方式进行操作

redirect('Main/homepage1', 'refresh');

作为

$url = site_url('main/homepage1');
 redirect($url);

当您重定向到新链接时,您不需要刷新它。 希望它有所帮助