Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk mencapai tujuh hari tanpa log masuk dalam php
Cara melaksanakan tujuh hari tanpa log masuk dalam PHP: 1. Buat butang di bahagian hadapan untuk pengguna memilih tanpa log masuk tujuh hari 2. Di bahagian belakang, tanya ID pengguna berdasarkan nama pengguna dan kata laluan yang dihantar oleh pengguna 3. Simpan ID pengguna dalam cooike 4. Tetapkan masa tamat tempoh tujuh hari;
Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 8.1, komputer Dell G3.
Bagaimana untuk mengelakkan log masuk selama tujuh hari dalam php?
Laksanakan fungsi 7 hari tanpa log masuk dalam php untuk mengelakkan penipuan kuki
1. Idea tanpa log masuk
Pengguna memilih butang 7 hari tanpa log masuk , bahagian belakang menanyakan ID pengguna berdasarkan nama pengguna dan kata laluan yang diserahkan oleh pengguna, menyimpan ID pengguna dalam cooike dan menetapkan masa tamat tempoh tujuh hari. Apabila maklumat kuki tidak dikosongkan (apabila keluar secara tidak normal), latar belakang membantu pengguna log masuk. Ia sebenarnya dilaksanakan menggunakan kuki.
2. Sahkan fail log masuk: checkLogin.php
<?php header('content-type:text/html;charset=utf-8'); require './config.php'; $username = $_POST['uname']; $password = md5($_POST['pwd']); $islogin = $_POST['islogin']; $sql = "SELECT * FROM `mu_user` WHERE `username`=? AND `password`=? "; $stm = $pdo -> prepare($sql); $stm ->bindParam(1,$username); $stm ->bindParam(2,$password); $stm ->execute(); $res = $stm->fetch(PDO::FETCH_ASSOC); if($stm->rowCount() == 1){ //验证成功 clearCookie(); if($islogin==1){ //记住密码 setcookie("username",$res['username'],strtotime('+7 days')); $token = settoken($res['username'],$res['password'],$res['id']); setcookie("token",$token,strtotime('+7 days')); }else{ // 无记住密码 setcookie("username",$res['username']); $token = settoken($res['username'],$res['password'],$res['id']); setcookie("token",$token); } exit(" <script> alert('登录成功!'); location.href ='index.php'; </script> "); }else{ //验证失败 exit(" <script> alert('用户名或密码有误!'); location.href ='login.php'; </script> "); } //清除cookie function clearCookie(){ setcookie("username",'',time()-1800); setcookie("token",'',time()-1800); } //设置token function settoken($username,$password,$id) { $salk = "czx"; $token = md5($salk.$username.$password)."*".$id; return $token; }
3 >
4. Fail halaman log masuk: log masuk.php<?php //主机地址 define("DB_HOST","localhost"); //数据库用户名 define("DB_USER","root"); //数据库密码 define("DB_PASSWORD","root123"); // 数据库型号 define("DB_TYPE","mysql"); // 数据库名称 define("DB_NAME","my_user"); //数据库编码 define('DB_CHARSET', 'utf8'); //数据库端口号 define('DB_PORT', '3306'); //定义PDO的DSN,数据源名,包括主机名,端口号和数据库名称。 define('DSN', DB_TYPE.":host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET); try{ //连接数据款 $pdo = new PDO(DSN,DB_USER,DB_PASSWORD); } catch(PDOException $e){ //捕捉特定于数据库信息的PDOEXCEPTION 异常 echo $e->getMessage(); } catch(Throwable $e){ //捕捉拥有Throwable接口的错误或者其他异常 echo $e->getMessage(); }
5 🎜 >Pembelajaran yang disyorkan: "
<?php if($_GET['act'] == 'out'){ setcookie("username",'',time()-1800); setcookie("token",'',time()-1800); } $token = $_COOKIE['token']; $username = $_COOKIE['username']; if(!empty($username) &&!empty($token)&& ($_GET['act'] != 'out')){ exit(" <script> alert('用户已登录,请直接访问!'); location.href ='index.php'; </script> "); } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>登录</title> </head> <style> *{ margin: 0px; padding: 0; } .contater { border: 1px solid #000; width: 300px; display: flex; flex-direction: column; margin: auto; } .contater>div { margin-top: 20px; } h3 { text-align: center; } .contater > .submit >input{ margin: 15px 140px; font-size: 1.5rem; } </style> <body> <h3 >登录</h3> <form action="checkLogin.php" method="post"> <div> <div> <span>用户名:</span> <input type="text" name="uname"> </div> <div> <span>密 码:</span> <input type="password" name="pwd"> </div> <div> <input type="radio"" name="islogin" value="1"> <span>记住密码</span> </div> <div> <input type="submit" value="登录"> </div> </div> </form> </body> </html>Tutorial Video PHP
"
Atas ialah kandungan terperinci Bagaimana untuk mencapai tujuh hari tanpa log masuk dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!