Maison >développement back-end >Problème PHP >Comment mémoriser le mot de passe en php

Comment mémoriser le mot de passe en php

王林
王林original
2019-09-26 11:49:054696parcourir

Comment mémoriser le mot de passe en php

Lors de la création d'un site Web, nous rencontrons souvent le besoin de nous souvenir du mot de passe, de nous connecter automatiquement la prochaine fois, d'éviter de nous connecter dans la semaine et d'éviter de nous connecter dans le mois. Cette fonction est généralement mise en œuvre via des cookies. Cet article expliquera brièvement comment utiliser PHP pour répondre à cette exigence. Bien entendu, il existe de nombreuses façons de répondre à cette exigence.

L'ensemble du processus est le suivant: lorsque l'utilisateur se connecte, s'il choisit de se souvenir du mot de passe ou n'a pas besoin de se connecter pendant une semaine, etc., une fois que l'utilisateur s'est connecté avec succès, un cookie contient des données qui implémente la connexion automatique est stocké. Accédez à la table utilisateur dans la base de données pour vérification la prochaine fois que vous vous connecterez automatiquement. Si la vérification est réussie, vous vous connecterez automatiquement. Sinon, vous devrez saisir votre nom d'utilisateur et votre mot de passe pour vous connecter. La valeur du cookie enregistrée peut prendre un code aléatoire.

L'exemple de code spécifique est le suivant :

$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");
  }
 }
}

De plus, lors de la visite de chaque page du site Web, les fonctions suivantes doivent être vérifiées en premier.

//检查用户是否登录
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里面
  }
  }
 }
}

Tutoriel recommandé : Tutoriel vidéo PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn