Php 正在尝试使用CodeIgniter登录
我正在尝试使用CodeIgniter登录我在一个教程中找到的内容,因为我几乎不知道怎么做 所以我有一个登录模型、视图和控制器以及一个verifylogin控制器。问题是它总是将表单验证为无效登录,我不知道为什么: 登录控制器Php 正在尝试使用CodeIgniter登录,php,codeigniter,Php,Codeigniter,我正在尝试使用CodeIgniter登录我在一个教程中找到的内容,因为我几乎不知道怎么做 所以我有一个登录模型、视图和控制器以及一个verifylogin控制器。问题是它总是将表单验证为无效登录,我不知道为什么: 登录控制器 <?php if (!defined('BASEPATH')) exit('Acceso no autorizado'); class Login extends CI_Controller { function __construct() {
<?php if (!defined('BASEPATH')) exit('Acceso no autorizado');
class Login extends CI_Controller
{
function __construct()
{
parent::__construct();
}
function index()
{
$datos = array(
'home_name' => $this->config->item('home_name'),
'root_path' => $this->config->item('root_path')
);
$this->load->helper('form');
// Menú principal
$this->load->view('menu', $datos);
// TODO: Put your code here...
$this->load->view('login', $datos);
// Cierre html
$this->load->view('cierre', $datos);
}
}
?>
<?php if (!defined('BASEPATH')) exit('Acceso no autorizado');
class VerifyLogin extends CI_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('user', '', TRUE);
}
function index()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Usuario', 'trim|required|xss_clean');
$this->form_validation->set_rules('password', 'Contraseña', 'trim|required|xss_clean|callback_check_database');
if ($this->form_validation->run() == FALSE)
{
/*$datos = array(
'home_name' => $this->config->item('home_name'),
'root_path' => $this->config->item('root_path')
);
$this->load->helper('form');
$this->load->view('menu', $datos);
$this->load->view('login', $datos);
$this->load->view('cierre', $datos);*/
echo "error en login"; // IT ALWAYS ENDS UP HERE........
}
else
{ echo "login correcto"; // NEVER HERE
//redirect('portada', 'refresh');
}
}
function check_database($password)
{
$username = $this->input->post('username');
$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', 'Usuario o contraseña inválidos');
return false;
}
}
}
?>
登录视图
<div id='content-login'>
<div class='container'>
<div id='logo' class='login buscadores'>
<span class='icon icon-lock'></span>
<h1>Inicia sesión</h1>
<p>Accede como usuario a <?php echo $home_name?></p>
</div>
<div>
<div id='buscadores' class='container'>
<div class='content'>
<?php echo validation_errors(); ?>
<?php echo form_open('verifylogin');
$datos = array(
'name' => 'username',
'placeholder' => 'Usuario',
'class' => 'text',
'size' => '25'
);
echo form_input($datos);
$datos = array(
'name' => 'password',
'placeholder' => 'Contraseña',
'class' => 'text',
'size' => '25'
);
echo form_password($datos);
$datos = array(
'id' => 'login',
'name' => 'login',
'value' => 'Login',
'class' => 'button cursor'
);
echo form_submit($datos);
?>
</div>
</div>
</div>
</div>
</div>
伊尼西亚·塞西翁
加入科莫·乌萨里奥a
登录模式
<?php
class User extends CI_Model
{
function login($username, $password)
{
$this->db->select('id, username, password');
$this->db->from('users');
$this->db->where('username', $username);
$this->db->where('password', MD5($password));
$this->db->limit(1);
$query = $this->db->get();
return ($query->num_rows() == 1) ? $query->result() : false;
}
}
我不认为你一开始就让codeigniter抓取你的密码,因为你丢失了一个助手导入(当然我认为这会引发某种错误,所以请检查你的日志) 另外,您可以在autoload.php配置中加载此帮助程序 在验证控制器中使用此选项
$this->load->helper(数组('form','url')代码>
所有文档都假定相同的控制器和功能进行验证(考虑到这一点,这很有意义,只要您不编写20行代码来处理事情并将其分离为离散的功能位)我终于找到了一个解决方案。apache模块重写需要处于活动状态,但它没有处于活动状态。什么意思$密码是check_数据库函数的参数。请在我的主要帖子上查看我的评论。绝对!我马上就去。我们会追根究底的。谢谢你的额外信息!我把它添加到我的控制器上,我仍然有同样的问题。不管怎样,阅读我在回复我的主要帖子时的第一条评论,我仍然在为这个奇怪的问题寻找解决方案,但没有成功。好吧,除非你有什么发现,否则我会一整天都在看这个问题。如果你想用这个聊天,我们可以做一件有趣的事,我的朋友在localhost上运行着完全相同的网络,对他来说,这是可行的,但对我来说不是。实际上,他犯了一个我没有发现的错误,只是将会话库加载到verifylogin控制器构造中,它就消失了,工作得很好……如果它对他有效,而不是对你有效,那可能是数据库配置问题。你检查过你的日志了吗?我导出了我的sql,他把它导入了他的数据库,数据完全一样。好的,酷。现在,当我试图找出另一个答案时,这里有一个“它是否插上电源”的问题。您正在连接的DB用户表上是否有“选择”授权?是的,我实际上是以root用户身份连接的。