>  기사  >  백엔드 개발  >  PHP에서 비밀번호를 기억하는 방법

PHP에서 비밀번호를 기억하는 방법

王林
王林원래의
2019-09-26 11:49:054664검색

PHP에서 비밀번호를 기억하는 방법

웹사이트를 구축하다 보면 비밀번호를 기억하고 다음번에는 자동로그인을 해야하고, 일주일 안에 로그인을 피하고, 한 달 안에 로그인을 피해야 하는 경우가 종종 발생합니다. 이 기능은 일반적으로 쿠키를 통해 구현됩니다. 이 기사에서는 이 요구 사항을 달성하기 위해 PHP를 사용하는 방법에 대해 간략하게 설명합니다. 물론 이 요구 사항을 충족하는 방법에는 여러 가지가 있습니다.

전체 프로세스는 사용자가 로그인할 때 비밀번호를 기억하기로 선택하거나 사용자가 성공적으로 로그인한 후 일주일 동안 로그인할 필요가 없는 경우 자동 로그인을 구현하는 쿠키의 데이터를 저장하는 것입니다. 사용자를 위해 데이터베이스에 저장되며, 다음 자동 로그인 시 확인을 위해 사용됩니다. 인증이 통과되면 자동으로 로그인됩니다. 그렇지 않으면 로그인하려면 사용자 이름과 비밀번호를 입력해야 합니다. 저장된 쿠키 값은 임의의 코드를 가질 수 있습니다.

구체적인 샘플코드는 다음과 같습니다.

$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里面
  }
  }
 }
}

추천 튜토리얼: PHP 비디오 튜토리얼

위 내용은 PHP에서 비밀번호를 기억하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.