Heim  >  Artikel  >  Backend-Entwicklung  >  Verwenden Sie PHP, um innerhalb einer Woche einen automatischen Anmeldespeichermechanismus zu realisieren

Verwenden Sie PHP, um innerhalb einer Woche einen automatischen Anmeldespeichermechanismus zu realisieren

墨辰丷
墨辰丷Original
2018-05-31 09:36:591559Durchsuche

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=&#39;index.php&#39;; 
  </script>"; 
  } 
} else { 
  echo "<script> 
alert(&#39;请登录&#39;); 
window.location.href=&#39;login.html&#39;; 
</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(&#39;username&#39;,&#39;$username&#39;); 
//localStorage.setItem(&#39;password&#39;," . "&#39;" . $password . "&#39;" . "); 
//</script>"; 
function setStroage($username, $password){ 
  echo "<script> 
  localStorage.setItem(&#39;username&#39;," . "&#39;" . $username . "&#39;" . "); 
  localStorage.setItem(&#39;password&#39;," . "&#39;" . $password . "&#39;" . "); 
  </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=&#39;index.php&#39;;

Der Die erste Methode oben führt getCookieByKey(key) aus;


Der von dieser Funktion mit Parametern empfangene Parameter sind die myArr-Daten, die wir oben gekapselt haben;

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]; 
      } 
    } 
  }


Zuerst verwenden wir den obigen Code, der auch vier Attribute abruft und sie in unserer $_SESSION ablegt:


Dann gibt es Der Code oben. Sie können sehen, dass es ein se gibt Speichert hauptsächlich vier Attribute: Benutzername.Passwort.IP.Zeit

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 lesen: localStorage.getItem("key"); Das Leseergebnis ist ein String;

Daten löschen: localStorage.removeItem("key");

Der detaillierte Code lautet wie folgt:


Die unter dem HTML geschriebene JS-Datei lautet Dann die Implementierung:


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);


Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er wird für alle hilfreich sein Studie .



Verwandte Empfehlungen:

So löschen Sie Dateien in einem Verzeichnis mit PHP unlink und rmdir


Detaillierte Erläuterung häufig verwendeter Methoden für PHP-MySQL-Transaktionsvorgänge

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn