Maison > développement back-end > Problème PHP > Comment réparer la connexion basée sur les cookies PHP en un seul geste

Comment réparer la connexion basée sur les cookies PHP en un seul geste

醉折花枝作酒筹
Libérer: 2023-03-08 22:20:01
original
1979 Les gens l'ont consulté

De nos jours, nous implémentons principalement la fonction de connexion automatique par mot de passe basée sur les cookies des clients, et PHP ne fait pas exception. Les amis dans le besoin peuvent s'y référer.

Comment réparer la connexion basée sur les cookies PHP en un seul geste

L'idée de solution permettant à PHP de mémoriser les mots de passe et de se connecter automatiquement est en fait le fonctionnement de sessions et de cookies.

Tout d'abord, nous avons besoin d'un modèle HTML, dans lequel les éléments du formulaire sont écrits, le nom, le mot de passe et le bouton de connexion sont écrits, et le fichier s'appelle login.php. Notre page de connexion est principalement réalisée sur cette page. .

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<title>请登录</title>
</head>
<body>
<form method="post" action="login.php">
    姓名:<input type="text" name="username" />
    密码:<input type="password" name="password" />
    <input type="submit" name="submit" value="登录" />
</form>
</body>
</html>
Copier après la connexion

Il ne suffit pas d'avoir le modèle HTML, nous devons transmettre la valeur. En supposant que ce site Web n'a qu'un seul membre (ou utilisateur), nous devons faire correspondre le nom avec celui de l'utilisateur. nom, tel que Non, vous ne pourrez pas vous connecter. Le code est le suivant :

if (isset($_POST[&#39;submit&#39;])) {
    if(isset($_POST[&#39;username&#39;]) && isset($_POST[&#39;password&#39;]) && $_POST[&#39;username&#39;]===&#39;cmcc&#39; && $_POST[&#39;password&#39;]===&#39;123456&#39;){
        if (setcookie(&#39;username&#39;,$_POST[&#39;username&#39;],time()+3600)) {
            header(&#39;Location:lesson9.php?url=lesson8.php&&=登录成功,正在跳转中!&#39;);
        }else{
            echo &#39;cookie设置失败!&#39;;
        }
    }else{
        header(&#39;Location:lesson9.php?url=lesson8.php&&=用户名或密码填写错误,登录失败!&#39;);
    }
}
?>
Copier après la connexion

Après vous être connecté puis avoir visité le site Web, il ne devrait pas afficher que vous devez vous connecter. Pour cela raison, nous devons mettre en place une fonction if pour juger.

<?php
if (isset($_COOKIE[&#39;username&#39;])&&$_COOKIE[&#39;username&#39;]===&#39;cmcc&#39;) {
    exit("您已经登录请不要重复登录");
}
Copier après la connexion

Afin d'accepter ces données et de nous reconnecter en raison d'erreurs de connexion, nous devons créer un nouveau fichier weclome.php et y écrire :

<?php
   if (isset($_COOKIE[&#39;username&#39;])&&$_COOKIE[&#39;username&#39;]===&#39;cmcc&#39;) {
       echo "亲爱的{$_COOKIE[&#39;username&#39;]}您好,欢迎回来!";
   }else{
       echo "<a href=&#39;lesson7.php&#39;>请登录</a>";
   }
?>
Copier après la connexion

À ce stade, nous avons terminé toutes les opérations sur la page de connexion. Le code complet de login.php est donné ci-dessous pour une référence facile.


<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<title>请登录</title>
</head>
<body>
<form method="post" action="login.php">
    姓名:<input type="text" name="username" />
    密码:<input type="password" name="password" />
    <input type="submit" name="submit" value="登录" />
</form>
</body>
</html>
Copier après la connexion

Apprentissage 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!

Étiquettes associées:
Déclaration de ce site Web
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
Derniers numéros
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal