嗨我有关于tuts的用户教程的问题... 当我在登录表单中键入用户名和密码时,它将返回未经验证的状态。我不知道最近发生了什么。这是代码
型号:user.php
<?php
class User extends CI_Model
{
// Create a user
function create_user($data){
$this->db->insert('users',$data);
}
// Login
function login($username,$password){
$where=array(
'username'=>$username,
'password'=>$password);
$this->db->select()->from('users')->where($where);
$query=$this->db->get();
return $query->first_row('array');
}
}
Controller:users.php
<?php
class Users extends CI_Controller
{
// Login Function
function login(){
$data['error']=0;
if ($_POST){
$this->load->model('user');
$username=$this->input->post('username',true);
$password=$this->input->post('password',true);
$user=$this->user->login($username,$password);
if(!$user){
$data['error']=1;
} else {
$this->session->set_userdata('userID',$user['userID']);
$this->session->set_userdata('user_type',$user['user_type']);
redirect(base_url().'index.php/posts/');
}
}
$this->template->load('layout/template', 'login', $data);
}
// Logout Function
function logout(){
$this->session->sess_destroy();
redirect (base_url()).'index.php/posts/';
}
}
查看:login.php
<h2>Login</h2>
<div class="row">
<div class="span12">
<?php if($error==1){ ?>
<p class="alert alert-error ">
Username/Password did not match...
</p>
<?php } ?>
<p>
<form action="<?=base_url()?>index.php/users/login" method="post">
<p><input class="span3" name="username" type="text" placeholder="Username"></p>
<p><input class="span3" name="password" type="password" placeholder="Password"></p>
<p><button class="btn btn-primary" type="submit">Login</button></p>
</form>
</p>
</div>
</div>
我经历过彻底但却找不到任何东西......
任何帮助或信息都会很感激,但请你温柔一点新手大声笑......
克里斯
答案 0 :(得分:0)
对于控制器;
试试这一行
if( count($_POST[]) > 0 ) {
或
if( $this->input->server('REQUEST_METHOD') === 'POST' ) {
而不是这一行
if ($_POST){
表示模型;
// Login
function login($username,$password){
$where=array(
'username'=>$username,
'password'=>$password);
$query = $this->db->get_where('users',$where);
return $query->first_row('array');
}
以防万一,绝不存储密码而不加密密码!