当前位置: 首页 > 知识库问答 >
问题:

与用户名和密码匹配时出现Codeigniter登录系统错误

阮昊阳
2023-03-14

我用codeigniter做了一个登录程序,当我在表单中输入错误的用户名或密码时没有问题,它给我的警告就像在程序中一样失败。一开始我以为访问数据库没有问题。而当我输入用户名和密码,这是一个已经添加到数据库,失败警报没有出现,正如它应该。但当我在if-else程序中输入代码时。失败时显示警报,并死亡(“成功”);如果密码和用户名匹配。但是die(success)代码不能工作,当我重定向到其他页面时,它也不能工作。如果变量为false,程序就会正常工作。

<?php echo form_open('users/login'); ?>
<div class="row justify-content-md-center" ">

    <div class="col-md-4 col-md-4-offset-4 rounded-lg" style="background-color: white" > 
        <br>
        <h2 class="text-center"><?= $title ?></h2>
        <div class="form-group">
            <input type="text" name="username" class="form-control" placeholder="Masukkan Username" required autofocus>
        </div>
        <div class="form-group">
            <input type="password" name="password" class="form-control" placeholder="Masukkan Password" required autofocus>
        </div>
        <center><button type="submit" class="btn btn-success btn-block">LOGIN</button></center>
        <br>
    </div>


</div>

我的控制器

<?php
class Users extends CI_Controller{

    }

    public function login(){
        $data['title'] = 'Login Admin ISNU Kalsel';


        $this->form_validation->set_rules('username','Username','required|callback_check_username_exist');
        $this->form_validation->set_rules('password','Password','required');

        if($this->form_validation->run()===FALSE){
            $this->load->view('templates/header');
            $this->load->view('users/login',$data);
            $this->load->view('templates/footer');
        }else{

            $username = $this->input->post('username');
            $password = md5($this->input->post('password'));

            $this->load->model('user_model');
            $user_id = $this->user_model->login($username,$password);

            if($user_id == FALSE){
                die('success');
                $this->session->set_flashdata('login_failed','Login Gagal!');
                redirect('users/login');
            }else{
                $this->session->set_flashdata('user_loggedin','Selamat datang di website ISNU Kalsel');
                redirect('posts');
            }
            //set pesan



        }

    }


}

还有我的模特

<?php
class User_model extends CI_Model{

    public function __construct(){
        $this->load->database();
    }

    public function login($username,$password){
        $this->db->where('username',$username);
        $this->db->where('password',$password);

        $result = $this->db->get('users');

        if($result->num_rows() == 1){
            return $result->row(0)->id;
        }else{
            return FALSE;
        }
    }



}

共有1个答案

姜运珧
2023-03-14

如果方法get(这是默认值),form_validation将不起作用。此外,如果窗体方法不是post$this->input->post()不会给出任何结果,因此您需要给出属性method='post'

<?php 
   echo form_open('users/login', array('method'=>"POST"));
?>

如果您想要使用get方法验证表单,您需要查看这里和这里。
看看是否对您有帮助。

 类似资料:
  • 我已经安装了Jenkins ver。OSX 10.11.3上的1.653,使用标准安装程序并添加git插件。我试着从github为公共项目创建一个作业,它成功了。现在,我试图创建私人回购作业使用用户名和密码,但它总是失败。这是日志: 在工作区中构建/Users/Shared/Jenkins/Home/workspace/MyProject git rev-parse --is-inside-wor

  • 问题内容: 我需要输入USER表的USER_ID字段作为另一个表中的外键。因此,我认为我需要在用户登录时启动一个会话。我很难让它在任何地方回显。我能够启动一个会话,该会话允许我回显USERNAME,但无法将其复制为ID。 请帮忙吗?我的处理代码如下。我还粘贴了本节,我暂时尝试对其进行回显以进行测试。 处理脚本: 我希望USER_ID出现在哪里: 问题答案: 使用FETCH_ASSOC而不是FETC

  • 本文向大家介绍Javascript实现登录记住用户名和密码功能,包括了Javascript实现登录记住用户名和密码功能的使用技巧和注意事项,需要的朋友参考一下 话不多说,请看代码: 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!

  • 我喜欢用户按公司名称、用户名和密码登录-他们需要输入所有这些字段。 和字段在表中。在表中。 可以在表中重复,但是每个用户名属于不同的公司名。在表中定义。 如何根据公司名称、用户名和密码进行身份验证? 我查看了方法。 我不能覆盖它,因为我需要传递属于公司的特定用户,然后进行身份验证检查。 更新:

  • 本文向大家介绍PHP实现简易用户登录系统,包括了PHP实现简易用户登录系统的使用技巧和注意事项,需要的朋友参考一下 PHP简易用户登录系统,供大家参考,具体内容如下 最近刚刚看到PHP连接数据库的实例,于是做了一个简易的用户系统 直接上代码 连接数据库:connect.php 用户注册前端页面:reg.html 注册后端处理:reg.php 用户登录前端页面:login.html 登录后端处理:l

  • 我正在为我的公司使用VS19在WinForms中创建一个“简单”的VSTO(Outlook插件),它将扫描所有文件夹中的社会安全号码,并在列表视图中列出电子邮件项目,以便用户可以删除邮件。 我正在使用EWS托管API客户端:https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/get-sta