Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erklärung der Cookies zur PHP-Sitzungssteuerung

Ausführliche Erklärung der Cookies zur PHP-Sitzungssteuerung

小云云
小云云Original
2018-03-26 14:24:381940Durchsuche

1. Was ist ein Cookie:

Manchmal auch im Plural verwendet, bezieht sich „Cookies“ auf die Daten (normalerweise verschlüsselt), die von einigen Websites auf dem lokalen Endgerät des Benutzers gespeichert werden, um die Identität des Benutzers zu identifizieren und Führen Sie eine Sitzungsverfolgung durch. Die häufigste Anwendung von Cookies besteht darin, festzustellen, ob sich ein registrierter Benutzer auf der Website angemeldet hat. Beim nächsten Betreten der Website wird der Benutzer möglicherweise gefragt, ob er Benutzerinformationen speichern möchte, um den Anmeldevorgang zu vereinfachen. Eine weitere wichtige Anwendung ist die „Warenkorb“-Verarbeitung. Benutzer können innerhalb eines bestimmten Zeitraums auf verschiedenen Seiten derselben Website unterschiedliche Produkte auswählen. Diese Informationen werden in Cookies geschrieben, damit sie bei der endgültigen Zahlung abgerufen werden können.

Vorteile:

Gute Kompatibilität

Nachteile:

1. Die Datenkapazität ist begrenzt und kann nur bis zu 4 KB an Daten speichern, was je nach Browser unterschiedlich ist; der Client kann Cookies deaktivieren oder löschen, was sich auf die Funktionalität des Programms auswirkt.

3. Es ist unsicher. Wenn mehrere Personen einen Computer gemeinsam nutzen, kann die Verwendung von Cookies die Privatsphäre des Benutzers gefährden und Sicherheitsprobleme verursachen.

2. Funktionsweise von Cookies:

Ein Cookie ist ein vom Webserver auf der Festplatte des Benutzers gespeicherter Text, der einige „Schlüssel-Wert“-Paare speichert. Jede Website kann Cookies auf dem Computer des Benutzers speichern und bei Bedarf Cookie-Daten abrufen. Normalerweise verfügen Websites über eine Cookie-Datei. Jedes Mal, wenn ein Benutzer Website A besucht, sucht er nach der Cookie-Datei von Website A. Wenn sie vorhanden ist, werden die Daten des Benutzernamen- und Kennwortpaars „Schlüssel-Wert“ daraus gelesen. Wenn die Daten des „Schlüssel-Wert“-Paares aus Benutzername und Passwort gefunden werden, werden diese zusammen mit der Zugriffsanforderung an Site A gesendet. Wenn Site A beim Empfang der Zugriffsanforderung auch die „Schlüsselwert“-Daten „Benutzername und Passwort“ erhält, werden die Benutzernamen- und Passwortdaten zum Anmelden verwendet, sodass der Benutzer den Benutzernamen und das Passwort nicht eingeben muss. Wenn die Daten des „Schlüssel-Wert“-Paares aus Benutzername und Passwort nicht empfangen werden, bedeutet dies, dass sich der Benutzer zuvor nicht erfolgreich angemeldet hat. Zu diesem Zeitpunkt gibt Site A die Anmeldeseite an den Benutzer zurück. Darüber hinaus hat jedes Cookie ein Ablaufdatum und abgelaufene Cookies können nicht mehr verwendet werden. Häufig verwendete Cookie-Vorgänge sind das Setzen von Cookie-Daten, das Lesen von Cookie-Daten und das Löschen bestimmter Cookie-Daten.

Syntax:

bool setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = " " [, bool $secure = false [, bool $httponly = false ]]]]]] )


setcookie() definiert das Cookie, das zusammen mit dem restlichen HTTP an den Client gesendet wird Kopfzeilen. Wie andere HTTP-Header müssen Cookies gesendet werden, bevor das Skript eine Ausgabe erzeugen kann (aufgrund von Protokolleinschränkungen). Bitte rufen Sie diese Funktion auf, bevor Sie eine Ausgabe erzeugen (einschließlich 100db36a723c770d327fc0aef2ce13b1 und 93f0f5c25f18dab9d176bd4f6de5d30e oder Leerzeichen). Sobald das Cookie gesetzt ist, kann es beim nächsten Seitenaufruf mit $_COOKIE gelesen werden. Cookie-Werte gibt es auch in $_REQUEST

name: Cookie-Name.

Wert: Cookie-Wert. Dieser Wert wird auf dem Computer des Benutzers gespeichert. Speichern Sie keine vertraulichen Informationen. Der Name lautet beispielsweise „Cookiename“ und sein Wert kann über $_COOKIE[‚Cookiename‘] abgerufen werden.

expire: Cookie-Ablaufzeit. Dies ist ein Unix-Zeitstempel, die Anzahl der Sekunden seit der Unix-Epoche (1. Januar 1970, 00:00:00 GMT). Mit anderen Worten: Sie können grundsätzlich das Ergebnis der Funktion time() plus die Anzahl der Sekunden verwenden, die ablaufen sollen. Oder Sie können mktime() verwenden. time()+60*60*24*30 dient dazu, das Cookie so einzustellen, dass es nach 30 Tagen abläuft. Wenn es auf Null gesetzt ist oder der Parameter weggelassen wird, läuft das Cookie am Ende der Sitzung ab (d. h. wenn der Browser geschlossen wird).

Pfad:Cookie-gültiger Serverpfad. Wenn es auf „/“ gesetzt ist, ist das Cookie für den gesamten Domainnamen gültig. Wenn es auf „/foo/“ gesetzt ist, ist das Cookie nur für das Verzeichnis /foo/ und seine Unterverzeichnisse in der Domäne gültig (z. B. /foo/bar/). Der Standardwert ist das aktuelle Verzeichnis, wenn das Cookie gesetzt wird.

Domäne: Gültiger Domänenname/Subdomänenname des Cookies. Durch die Festlegung auf eine Subdomain (z. B. „www.example.com“) wird das Cookie für diese Subdomain und ihre Third-Level-Domain (z. B. w2.www.example.com) gültig. Um ein Cookie für einen gesamten Domainnamen (einschließlich aller seiner Subdomains) gültig zu machen, setzen Sie es einfach auf den Domainnamen (in diesem Fall „example.com“).

sicher: Legen Sie fest, ob dieses Cookie nur über sichere HTTPS-Verbindungen an den Client weitergegeben wird. Bei TRUE wird das Cookie nur gesetzt, wenn eine sichere Verbindung besteht. Wenn diese Anforderung serverseitig erfüllt wird, müssen Programmierer solche Cookies nur über sichere Verbindungen senden (wie durch $_SERVER["HTTPS"] festgelegt).

httponly: Auf TRUE gesetzt, kann auf das Cookie nur über das HTTP-Protokoll zugegriffen werden. Dies bedeutet, dass auf Cookies nicht über Skriptsprachen wie JavaScript zugegriffen werden kann. FALSCH, es gibt keine Begrenzung.

Rückgabewert

Wenn die Ausgabe vor dem Aufruf dieser Funktion generiert wird, schlägt setcookie() fehl und gibt FALSE zurück. Gibt TRUE zurück, wenn setcookie() erfolgreich ausgeführt wird. Dies bedeutet natürlich nicht, ob der Benutzer Cookies akzeptiert hat.

Cookies setzen und lesen

Cookies löschen
<?php
    $value="my cookie value"; //发送一个简单的cookie
    setcookie("testcookie",$value,time()+60);  //set cookie?><!DOCTYPE html><html><head>
    <meta charset="UTF-8">
    <title>Testcookie</title></head><body>
    <?php 
        if(isset($_COOKIE["testcookie"])) //判断是否存在
            echo($_COOKIE["testcookie"]."<br>");
        print_r($_COOKIE);    ?></body></html>

Um ein Cookie zu löschen, sollte die Ablaufzeit auf die Vergangenheit gesetzt werden, um den Löschmechanismus des Browsers auszulösen.

6cea04fb82bc3707e126c08c4226c5fb

用于记录当前用户访问网站的次数:

<?php

   if(isset($_COOKIE["num"]))        $num=$_COOKIE["num"];    else
       $num=0;                        //首次设置cookie

       $num=$num+1;                 
   setcookie("num",$num,time()+60*60) //发送一个cookie num记录访问次数?><!DOCTYPE html><html><head>
   <meta charset="UTF-8">
   <title>Testcookie</title></head><body>
   <?php 
       if($num>1)            echo("您已经第".$num."次访问本站点了。");        else
           echo("欢迎首次访问本站");        //关闭网页后,变量$num将被释放,但因为它的值已经保存再cookie中,所以下次打开网页会连续计数
   ?></body></html>

用户验证身份是验证cookie:

<?php  //身份验证cookie
   header("content-type:text/html;charset=utf-8");
   error_reporting(0);    //取输入的用户名和密码
       $uid=$_POST[&#39;username&#39;];        $upwd=$_POST[&#39;pwd&#39;];    //验证用户名和密码
   if($uid=="admin" && $upwd=="pass")
   {        echo("您已经登入成功,欢迎光临");        if($_POST[&#39;checkboxCookie&#39;]=="on")
       {
           setcookie("username",$uid,time()+60*60*24);
           setcookie("pwd",$upwd,time()+60*60*24);
       }
   }   
   else
       echo("登入失败,请返回重新登录");?><?php
   error_reporting(0);?><!DOCTYPE html><html><head>
   <meta charset="UTF-8">
   <title>Testcookie</title>
   <style type="text/css">form {    margin-top: 300px;    padding-left: 40%;}input[type="password"]{    margin-left: 16px;}input[type="reset"],input[type="submit"]{    margin-left: 80px;}</style></head><body>

   <form action="1.php" method="POST">

   <label>用户名:        <input type="text" name="uesrname" value=" <?php echo($_COOKIE["username"]);?>">    </label>
   <br><br>
                                                       <!-- 保留上次成功登入的用户名-->
   <lable>密码:    <input type="password" name="pwd" value="<?php echo($_COOKIE["password"]);?>" >    </lable>
                                                       <!-- 保留上次成功登入的用户名 -->
   <input type="checkbox" checked name="checkboxCookie">保留用户信息<br><br> <!-- 复选框 -->
   <input type="submit" name="put_info" value="登录">
   <input type="reset" name="rest_info" value="重置">
   </form></body></html>

相关推荐:

如何理解PHP中的会话控制

php中会话控制的深入理解

详细介绍php会话控制的实例代码

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung der Cookies zur PHP-Sitzungssteuerung. 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