Heim > Artikel > Backend-Entwicklung > Verwenden Sie PHP, um innerhalb einer Woche einen automatischen Anmeldespeichermechanismus zu realisieren
In diesem Artikel wird hauptsächlich die Verwendung von PHP vorgestellt, um einen automatischen Anmeldespeichermechanismus (Cookie, Sitzung, LocalStorage) innerhalb einer Woche zu realisieren, der eine kostenlose Anmeldung innerhalb einer Woche ermöglichen kann.
Cookie, Sitzung und lokaler Speicher sollten für Programmierer die drei problematischsten sein. Zur Erläuterung werde ich den Benutzernamen und das Passwort der einfachen Anmeldeschnittstelle verwenden.
1 um benutzerbezogene Daten zu speichern:
Die erste ist die Definition der Anmeldeschnittstelle:
<form action="server.php" method="post"> <input type="text" name="username" class="username" placeholder="Username"> <input type="password" name="password" class="password" placeholder="Password"> <button type="submit">Sign me in</button> <p class="error"><span>+</span></p> </form>
Jeder kennt den obigen Code, es ist ein Formular. Dann ist es die Aktion server.php,
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2016-7-19 * Time: 11:50 */ include "data.php"; header("Content-type:text/html;charset=utf-8"); //echo "ddd"; if ($_SERVER["REQUEST_METHOD"] == "POST") {//第一步 // echo "ddd1"; if ($_POST["username"] == $info["username"] && $_POST["password"] == $info["password"]) {//第二步 $myArr = $_POST; $myArr = array_merge($myArr, array("loginIP" => $_SERVER["REMOTE_ADDR"], "loginTime" => time())); se($myArr); setcookies($_POST["username"], $_POST["password"]); setStroage($_POST["username"], $_POST["password"]); echo "<script> window.location.href='index.php'; </script>"; } } else { echo "<script> alert('请登录'); window.location.href='login.html'; </script>"; } //通过session保存到服务器 function se(array $arr) { session_start(); $_SESSION["username"] = $arr["username"]; $_SESSION["password"] = $arr["password"]; $_SESSION["loginIP"] = $arr["loginIP"]; $_SESSION["loginTime"] = $arr["loginTime"]; } //通过cookie保存到本地 function setCookies($username, $password) { setcookie("username", $username, time() + 120); setcookie("password", $password, time() + 120); } //echo "<script> // // localStorage.setItem('username','$username'); //localStorage.setItem('password'," . "'" . $password . "'" . "); //</script>"; function setStroage($username, $password){ echo "<script> localStorage.setItem('username'," . "'" . $username . "'" . "); localStorage.setItem('password'," . "'" . $password . "'" . "); </script>"; }
Da ist eine data.php tatsächlich ein Datenelement,
$info=array("username"=>"admin","password"=>"admin");
Diese Daten werden hauptsächlich verwendet, um zu überprüfen, ob der eingegebene Benutzername und das Passwort korrekt sind .
Beurteilen Sie zunächst auf dem Server, ob es sich um eine Post-Anfrage handelt. Wenn nicht, werden Sie aufgefordert, sich erneut anzumelden und zur Anmeldeoberfläche zurückzukehren Posten Sie dann, ob die Informationen korrekt eingegeben wurden. Setzen Sie den folgenden Code. Lassen Sie mich einen nach dem anderen erklären
Tatsächlich wurde das Cookie zu diesem Zeitpunkt gemäß der von uns festgelegten Zeit gespeichert, und dann müssen wir die Funktion ohne Anmeldung verwenden. Die Verarbeitung des Backend-Servers erfolgt genau wie bei der Anmeldung bei anderen Software werden wir aufgefordert, uns innerhalb einer Woche ohne Passwort anzumelden:
$myArr = $_POST;//把post传过来的数据放在myarr;里面 $myArr = array_merge($myArr, array("loginIP" => $_SERVER["REMOTE_ADDR"], "loginTime" => time()));//这是穿的另外两个参数,一个是用户登录地址,另一个是cookie存活时间(会在寻获时间以为消失) se($myArr); setcookies($_POST["username"], $_POST["password"]);//这个是设置cookie,把传过来的两个值设置成cookie,会有一个getCookie进行接收 setStroage($_POST["username"], $_POST["password"]); echo "<script> window.location.href='index.php';Der Die erste Methode oben führt getCookieByKey(key) aus;
Die ausführliche Erklärung finden Sie im Code , Sie können darauf verweisen.
2. Sitzung: Die Sitzung wird zum Speichern von Benutzerinformationen auf der Serverseite verwendet. Wenn der Browser geschlossen wird, werden sie automatisch zerstört;
session_start();
Das Superarray $_SESSION kann die Einstellung und das Lesen der Sitzung realisieren
Der Code lautet wie folgt:
function intialLoadInfo(){ $("input:text").val(getCoolieByKey("username"));//这两个就是吧下面获取的之前输入过的用户名和密码进行自动填写(实现目的) $("input:password").val(getCoolieByKey("password")); } //通过key值获取cookie function getCoolieByKey(key){ var cookie=document.cookie.split(";");//这行代码是吧cookie的值进行分离(split),以便于下面遍历(分离后就是一个数组一样) for(var i=0;i<cookie.length;i++){//遍历长度 var value=cookie[i].trim();//去掉空格 if (value.indexOf(key)==0){//判断是不是第一个值 val=value.split("="); console.log(val[0]); return val[1]; } } }
Es wird auch im obigen Code kommentiert, jetzt können wir die Sitzung überprüfen, die wir selbst in der Sitzung erstellt haben
3. LocalStorage auf der JS-Seite: die von HTML5 bereitgestellte lokale Speichermethode (kann als „Schlüssel-Wert-Paar“-Datenbank bezeichnet werden);
Daten festlegen: localStorage.setItem(" key", "value");
Daten löschen: localStorage.removeItem("key");
Der detaillierte Code lautet wie folgt:function se(array $arr) { session_start(); $_SESSION["username"] = $arr["username"]; $_SESSION["password"] = $arr["password"]; $_SESSION["loginIP"] = $arr["loginIP"]; $_SESSION["loginTime"] = $arr["loginTime"]; }
Diese Funktion dient hauptsächlich der Erstellung
$myArr = array_merge($myArr, array("loginIP" => $_SERVER["REMOTE_ADDR"], "loginTime" => time()));//这是穿的另外两个参数,一个是用户登录地址,另一个是cookie存活时间(会在寻获时间以为消失) se($myArr);
Verwandte Empfehlungen:
PHP verwendet Sternchen, um einige Zeichen in Benutzername, Mobiltelefon und E-Mail-Adresse zu ersetzen
Das obige ist der detaillierte Inhalt vonVerwenden Sie PHP, um innerhalb einer Woche einen automatischen Anmeldespeichermechanismus zu realisieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!