使用Ajax Codeigniter检查用户名和密码是否匹配 - php

我目前正在做一个项目,在我的项目中有一个登录模式。到目前为止,我使用ajax所做的事情是:1)检查字段用户名和密码都有一个值; 2)用户名字段只有一个值(密码字段为空); 3)检查帐户是否通过验证

注意:我只是尝试过if($ data ['validateLogin']> 0)如果它有一个值,是的,它可以工作,但是当我输入正确的用户名和密码时,它仍然给我一个错误“用户名或密码不正确”

问题:如何检查用户名和密码是否正确?我的状况不对吗? if($ data ['validateLogin']> 0)?

登录模态视图

<!-- Login -->
            <div id="myLogin" class="modal fade" role="dialog">
                <div class="modal-dialog">
                    <!-- Modal content-->
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal">&times;</button>
                            <h4 class="modal-title">Login</h4>
                        </div>
                        <div class="modal-body">
                            <form id="login" encrypt="multipart/form-data">
                                <div class="form-group">
                                    <label> Username: </label>
                                    <input type="text" class="form-control" name="username" id="username">
                                </div>
                                <div class="form-group">
                                    <label> Password: </label>
                                    <input type="password" class="form-control" name="password" id="password">
                                </div>
                        </div>
                        <div class="modal-footer">
                            <button type="submit" class="btn btn-primary"> Login </button>
                            </form>
                            <a data-toggle="modal" href="#mySignup" data-dismiss="modal">Sign up</a>
                        </div>
                    </div>

                </div>
            </div>

我的登录方式为AJAX

$("#login").on('submit',function(event){

          $.ajax({
              url: "http://localhost/itsq/User/validate_user",
              type: "POST",
              data: $(this).serialize(),
              success: function(data) {
                  var result = JSON.parse(data);
                  //alert(data);
                  if(result===1)
                          {
                                swal({
                                  type: 'success',
                                  html: 'Update Successful!',
                                  timer: 2000,
                                  })
                                setTimeout(function() {

                                  document.location.href=base_url + "User/";

                                }, 2000);
                            // document.location.href="http://localhost/ecom/Administrator/view_staff_Account";

                          }
                          else
                          {

                                swal({
                                  type: 'error',
                                  html: result,
                                  timer: 2000,
                                  })

                            console.clear();
                          }
                  // $.LoadingOverlay("hide");
              },
              error: function (xhr, ajaxOptions, thrownError) {
           console.log(xhr.status);
           console.log(xhr.responseText);
           console.log(thrownError);
       }
          })
          event.preventDefault();
    });

控制者

public function validate_user()
    {
        $this->form_validation->set_error_delimiters('<div class="alert alert-danger" role="alert" style="padding:2px">', '</div>');
        $this->form_validation->set_rules('username', 'Username', 'required|trim');
        $this->form_validation->set_rules('password', 'Password', 'required|trim');
        if ($this->form_validation->run() == FALSE)
        { //if validation is false go to itemList
            echo json_encode(validation_errors());

        }
        else
        {

            $username = $_POST['username'];
            $password = $_POST['password'];

            $data['validateLogin'] = $this->CrudModel->validate_user($username,md5($password));

            if($data['validateLogin'] > 0) // If there's no match then do this
            {

                echo json_encode("Incorrect username or password");
            }
            else // Get all the information for that account
            {
                foreach($data['validateLogin'] as $vl) // Save it to one variable
                {
                     $user_id = $vl->id;
                     $status = $vl->status;
                }

                if($status != "Verified") // Is not verified
                {
                    echo json_encode("Your account is not verified");


                }
                else
                {
                    $this->session->set_userdata(array('user' => true, 'first_name' => $first_name, 'middle_name' => $middle_name, 'last_name' => $last_name,'gender' => $gender,'age' => $age, 'email' => $email,'username' => $username,'address' => $address, 'credit_card' => $credit_card, 'bank_name' => $bank_name));
                    redirect('administrator/index',$data);
                    echo json_encode(1); 
                }
            }


            // $this->CrudModel->insert('users', $customer);
            // echo json_encode(1); 
        }


    }

模型

// public function validate_user($table,$username_column,$email_column,$password_column,$username, $password)
public function validate_user($table,$username, $password)
{
    $this->db->select('username,email,password');
    $this->db->where("(email = $username OR username = $username) AND password = $password");
    // $query = $this->db->get($table);
    $query = $this->db->get();
    echo $this->db->last_query();
    return $query->result();
    // $query = $this->db->get_where($table,array($username_column => $username,$password_column => $password));
 //    return $query->result();
}

php参考方案

你需要改变你的状况

if(count($data['validateLogin']) == 0) // If there's no match then do this

将输入类型复选框关联到输入类型文本 - php

我有一个问题,我需要将输入类型复选框与输入类型文本关联。情况如下:从数据库中提取数据。 PK数据是复选框的值。当复选框选择输入类型的文本时,您可以在其中输入特定数字。现在的问题是,选中所有类型的复选框输入文本都会被激活。我希望通过选择复选框输入,仅启用与复选框相关联的输入。我的HTML代码(此代码创建一个输入复选框,并为数据库中的每个记录输入文本,而我要激活…

AJAX调用只能与$(document).on('click')一起使用 - php

我有一个显示数据库条目的表。用户能够为每一行打开一个弹出菜单。选项之一是删除数据库条目,并且该表应通过AJAX调用相应地刷新。只要有人单击#delete-toggle中的table-popup,我就会在HTML页面上进行AJAX调用(table-popup是div,当有人单击每行中存在的表中的table-edit-button时出现的表): <div …

Laravel 5 dataTables,带有控制器功能的初始化表 - php

我正在尝试创建一个用户的dataTable,其中每一行都有一个下拉子行,其中包含用户权限的复选框。因此,“超级”管理员可以动态地单击用户并在表中分配其特权。首先,不确定这是否是一个好主意,请随时提出一个更好的方法。也许每行一个简单的弹出模式会更容易,但是现在我已经决定这是一种很酷的方法,所以我继续进行。但是,目前尝试用AJAX初始化dataTable令我感到…

在codeigniter中检查AJAX调用是否成功 - php

我正在使用AJAX调用将一些数据插入MYSQLJS代码:$("input.addtruck").click(function (event) { event.preventDefault(); var user_id = $("input#user_id").val(); var numar = $("inp…

为什么我的注册表单可以在除Firefox之外的所有浏览器中使用? - php

在这里可用:http://syllableapp.com/test基本上,在Safari,Chrome,Opera,Webkit Nightly等中,表单可以完美地按预期工作。但是,在Firefox中,提交时只是...不执行任何操作。为什么是这样?这是我的JavaScript:$(document).ready(function() { $('in…