php中实现记住密码下次自动登录的例子,记住密码自动登录_PHP教程
php中实现记住密码下次自动登录的例子,记住密码自动登录
做网站的时候经常会碰到要实现记住密码,下次自动登录,一周内免登陆,一个月内免登陆这种需求。这种功能一般都是通过cookie来实现的。本篇文章将简单说一下如何使用php实现该需求的。当然实现该需求的方法有N多种。
整个过程就是用户在登陆的时候,如果选择了记住密码或者一周内免登陆等这个选项的时候,则在用户成功登陆操作完成之后,存储一个实现自动登录的cookie的数据到数据库的用户表里面,作为下次自动登录时验证用。验证通过则自动登录,否则需要输入用户名,密码进行登录。保存的这个cookie值则可以取一个随机码。
具体示例代码如下:
$username=trim($_POST['username']);
$password=md5(trim($_POST['password']));
$ref_url=$_GET['req_url'];
$remember=$_POST['remember'];//是否自动登录标示
$err_msg='';
if($username==''||$password==''){
$err_msg="用户名和密码都不能为空";
}else{
$row=getUserInfo($username,$password);
if(empty($row)){
$err_msg="用户名和密码都不正确";
}else{
$_SESSION['user_info']=$row;
if(!empty($remember)){//如果用户选择了,记录登录状态就把用户名和加了密的密码放到cookie里面
setcookie("username",$username,time()+3600*24*365);
setcookie("password",$password,time()+3600*24*365);
}
if(strpos($ref_url,"login.php")===false){
header("location:".$ref_url);
}else{
header("location:main_user.php");
}
}
}
另外在访问网站的每个页面时,都要先进行一遍如下函数的检查。
//检查用户是否登录
function checklogin(){
if(empty($_SESSION['user_info'])){//检查一下session是不是为空
if(empty($_COOKIE['username'])||empty($_COOKIE['password'])){//如果session为空,并且用户没有选择记录登录状
header("location:login.php?req_url=".$_SERVER['REQUEST_URI']);//转到登录页面,记录请求的url,登录后跳转过去,用户体验好。
}else{//用户选择了记住登录状态
$user=getUserInfo($_COOKIE['username'],$_COOKIE['password']);//去取用户的个人资料
if(empty($user)){//用户名密码不对没到取到信息,转到登录页面
header("location:login.php?req_url=".$_SERVER['REQUEST_URI']);
}else{
$_SESSION['user_info']=$user;//用户名和密码对了,把用户的个人资料放到session里面
}
}
}
}
判断用户登没登陆一般是靠cookie来判断,所以这一个实现一般靠的是设定cookie的时间,先判断是否保持登录状态,如果保持就在设定cookie的时候把时间设的长一些。具体想多长都可以设,可以是一天,一个月,一年都可以。
setcookie("TestCookie", $value,time()+3600);
其中time()+3600就是时间,指的是从现在开始保持登录状态一个小时。
学好技术 SESSION和COOKIE就是专门解决该问题 要在本机一直保存 用COOKIE

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP에서 데이터베이스 작업은 매우 쉽습니다. 이번 장에서는 CRUD(생성, 읽기, 업데이트, 삭제) 작업을 이해하겠습니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu
