public function check(){ if($_POST){ $username = trim($_POST['username']); $password = trim($_POST['password']); $verify = strtolower(trim($_POST['verify'])); $auth_code = $this->session->userdata('auth_code'); $mssage = array(); if(!$username||!$password||!$verify){ out_json('登录信息填写错误', 0); } if($verify!=$auth_code){ out_json('验证码输入错误', 0); } $this->load->model('admin_model'); $info = $this->admin_model->get_one(array('username'=>$username), 'id, username, password, login_num, group_id, accredit, status'); if($username!=$info['username']){ out_json('用户名不存在', 0); } if($info['status'] != 1){ out_json('用户状态异常', 0); } $password = md5($username . md5($password)); if($password!=$info['password']){ out_json('登录密码不正确', 0); } $info['type'] = 'admin'; $this->session->set_userdata($info); $data = array(); $data['login_num'] = $info['login_num']+1; $data['last_login_ip'] = $this->session->userdata('ip_address'); $data['last_login_time'] = time(); $this->admin_model->update($data, array('id' => $info['id'])); admin_log('登录后台'); out_json('登录成功', 1, !empty($_POST['redirect']) ? urldecode(base64_decode($_POST['redirect'])) : site_url('admin/index')); }else{ out_json('登录信息填写错误', 0); } }
时间: 2023-08-31 07:04:01 浏览: 44
这是一个PHP函数,名为`check()`,用于处理用户登录验证。函数首先检查是否接收到了POST请求,然后获取传递的用户名、密码和验证码,并从会话中获取验证码。如果其中有任何一个信息为空,则返回错误消息。接下来,函数加载`admin_model`模型,并根据用户名从数据库中获取相应的用户信息。如果用户名不存在或用户状态异常,则返回相应的错误消息。接下来,函数对密码进行加密处理,并与数据库中的密码进行比较,如果不匹配则返回登录密码不正确的错误消息。如果所有验证都通过,则将用户信息写入会话中,并更新用户的登录次数、最后登录IP和最后登录时间。最后,记录用户的登录行为,返回登录成功的消息,并根据是否传递了重定向地址进行相应的跳转。
相关问题
<?php header('content-type:text/html;charset=utf-8'); //登录界面 require 'ljsql.php';//连接数据库 //判断表单是否提交,用户名密码是否提交 if (isset($_POST['username'])&&isset($_POST['password'])){//登录表单已提交 //获取用户输入的验证码 $captcha = isset($_POST['captcha']) ? trim($_POST['captcha']) : ''; //获取Session中的验证码 session_start(); if(empty($_SESSION['captcha'])){ //如果Session中不存在验证码,则退出 exit('验证码已经过期,请返回并刷新页面重试。'); } //获取验证码并清除Session中的验证码 $true_captcha = $_SESSION['captcha']; unset($_SESSION['captcha']); //限制验证码只能验证一次,防止重复利用 //忽略字符串的大小写,进行比较 if(strtolower($captcha) !== strtolower($true_captcha)){ exit('您输入的验证码不正确!请返回并刷新页面重试。'); } //验证码验证通过,继续判断用户名和密码 //获取用户输入的用户名密码 $username=$_POST["username"]; $pwd=$_POST["password"]; $sql="select id,username,password from user where username='$username' and password='$pwd';"; $result=mysqli_query($con, $sql);//执行sql语句 $row=mysqli_num_rows($result);//返回值条目 if (!$row){//若返回条目不存在则证明该账号不存在或者密码输入错误 echo "<script>alert('账号不存在或密码错误,点击前往注册');location='./register.php'</script>"; //exit('账号或密码错误'); }else{//存在返回条目证明用户账号密码匹配,进入主页面 session_start(); $_SESSION['username']=$_POST['username']; echo "<script>alert('欢迎{$username}');location='../cwyy/index.html'</script>"; } }登录页面为什么登录不进去
有很多可能性导致登录页面无法登录,以下是一些常见的问题和解决方法:
1. 数据库连接失败:检查 `ljsql.php` 文件中的数据库连接信息是否正确,包括主机名、用户名、密码和数据库名等。
2. SQL语句有误:检查 SQL 语句是否正确,可以通过 phpMyAdmin 或者其他数据库管理工具来检查语句是否执行成功。
3. 验证码问题:确保输入的验证码与生成的验证码一致,区分大小写。
4. 用户名和密码问题:确保输入的用户名和密码与数据库中的一致,可能需要检查数据库中存储的密码是否经过加密处理。
5. PHP 版本问题:检查 PHP 版本是否符合要求,建议使用 PHP 7.0 或以上版本。
6. 错误提示问题:确保错误提示已经开启,可以在代码开头添加以下代码: `error_reporting(E_ALL); ini_set('display_errors', '1');` 。这样可以获取更详细的错误信息,方便排查问题。
以上是一些常见的问题和解决方法,如果以上方法无法解决问题,可以提供更具体的错误信息,方便进一步排查问题。
if(!isset($_SESSION['user_info']) || trim($_SESSION['user_info']) == ''){ header('location: index.html'); }含义
这段代码是用来检查用户是否已经登录。如果用户信息没有被存储在会话中(即$_SESSION['user_info']不存在或为空),则会将页面重定向到index.html页面。如果用户已经登录且用户信息已经存储在会话中,则代码不会执行任何操作,页面会正常显示。这段代码通常用于需要用户登录才能访问的页面或功能。