我创建了一个登录控制器,当我重定向到网站主页时,它不会重定向到我的视图,也就是索引。
这是我的控制器(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框架,如果你能帮我,我真的很感激。
表单中缺少名称属性。
<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'); ?>">
^ ^
在没有指定名称的情况下,您试图访问型号
通过更改代码应该可以工作。我想休息一下,一切都很好。
试试这个
在视图中
<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'); ?>">
在控制器中
public function validate_credentials () {
$this->load->model("membership_model");
$query = $this->membership_model->validate();
if($query == 1){
$data = array(
'username' => $this->input->post('username'),
'is_logged_in' => true
);
$this->session->set_userdata($data);
redirect('Main/homepage1');
}
else {
$this->index();
}
}
在模型中
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");
$result = $query->result_array();
$count = count($result);
return $count;
}
您忘记在login_view.php
上添加表单attributes
将您的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();
}
}
由于您的问题只是重定向,请按照以下进行操作
redirect('Main/homepage1', 'refresh');
作为
$url = site_url('main/homepage1');
redirect($url);
当你重定向到新链接时,你不需要刷新它。希望它能帮助