PHP-Version – Prinzip und Anwendung von HTTP-Sitzungscookies
PHP sendet Cookies in den Header-Informationen des http-Protokolls, daher muss die Funktion setcookie() aufgerufen werden, bevor andere Informationen an den Browser ausgegeben werden, was der Einschränkung bei der Funktion header() ähnelt.
1. Cookie setzen:
a.
zB:
PHP-Code
- $value = 'etwas von irgendwo';
- setcookie("TestCookie", $value); /* Einfache Cookie-Einstellungen */
- setcookie("TestCookie" , $value, time()+3600); /* Gültigkeitsdauer 1 Stunde */
- setcookie("TestCookie", $value, time()+3600, "/~rasmus/",
- ".example.com", 1); /* Gültiges Verzeichnis /~rasmus, gültiger Domainname example.com und alle seine Subdomains */
Mehrere Cookies setzen Variablen: setcookie('var[a]','value'); Verwenden Sie Arrays, um Variablen darzustellen, aber seine Indizes tun dies brauchen keine Anführungszeichen. Auf diese Weise können Sie $_COOKIE[‘var’][‘a’] verwenden, um das COOKIE zu lesen
Variable.
Header() verwenden, um Cookies zu setzen;
header("Set-Cookie: name=$value[;path=$path[;domain=xxx.com[;...]]");
PHP-Code
- $value = 'etwas von irgendwo';header("Set- Cookie:name=$value");
2. Cookies lesen:
Im obigen Beispiel ist das Cookie „TestCookie“ gesetzt, jetzt lesen wir:
PHP-Code
- drucken $_COOKIE['TestCookie']; >
3.Cookies löschen
Stellen Sie einfach die gültige Zeit so ein, dass sie kleiner als die aktuelle Zeit ist, und setzen Sie den Wert auf Null. Zum Beispiel:
zB:
PHP-Code
- setcookie("name", "", time() - 1);
Header() ähnlich verwenden.
Hinweis:
a.Verwenden Sie setcookie() Manchmal gibt es eine Fehlermeldung, was daran liegen kann, dass vor dem Aufruf von setcookie() eine Ausgabe oder ein Leerzeichen vorhanden ist. Es ist auch möglich, dass Ihr Dokument aus einem anderen Zeichensatz konvertiert wurde.
Andererseits verfügt das Dokument möglicherweise über eine Stücklistensignatur (d. h. es werden einige versteckte Stücklistenzeichen zum Dateiinhalt hinzugefügt). Die Lösung besteht darin, dies in Ihrem Dokument zu verhindern. Sie können das Problem auch ein wenig lösen, indem Sie die Funktion ob_start() verwenden.
b.$_COOKIE ist von magic_quotes_gpc betroffen und kann automatisch entkommen
c.Bei der Verwendung ist es notwendig zu testen, ob der Benutzer Cookies unterstützt
4. Prinzip.
a. Der Server setzt ein Cookie im Client, indem er einen HTTP-Set-Cookie-Header mit der Antwort sendet (mehrere Cookies erfordern mehrere Header).
b Der Client sendet automatisch einen http-Cookie-Header an den Server, und der Server empfängt und liest ihn. HTTP/1.x 200 OK
18:52:00 GMT
Cache-Kontrolle: kein Speichern, kein Cache, muss erneut validiert werden, Nachprüfung=0, Vorprüfung=0
Pragma: kein Cache
Inhaltstyp: Text/HTML
Diese Zeile implementiert die Cookie-Funktion Nach Erhalt dieser Zeile
Set-Cookie: TestCookie=etwas von irgendwo; Pfad=/
Der Browser erstellt eine Cookie-Datei auf der Festplatte des Clients und schreibt hinein:
TestCookie=etwas von irgendwo;
Diese Zeile ist das Ergebnis der Verwendung von setcookie('TestCookie','something fromwhere','/'); Das ist das Ergebnis der Verwendung von
header('Set-Cookie: TestCookie=something from irgendwo; path=/');.
-------------------- ------ --------------------------------Trennlinie---------- -------- ------------------------------------------ --------
PHP-SITZUNG
Das Kernkonzept der Sitzung ist: zusätzliche Daten zum Springen zwischen Webseiten, auf dem Server gespeichert, mit einer ID identifiziert und durchsucht Um die Sitzung aufrechtzuerhalten, muss der Server diese ID bei jeder Übermittlung mitbringen
--------------- -------------------------------------------------- -------------------------------------------------- -- ---------
Es gibt zwei Möglichkeiten, die Sitzungs-ID zu übergeben:
a.
Wenn Sie von dieser Seite zu einer neuen Seite springen und session_start() aufrufen, überprüft PHP die mit der angegebenen ID verknüpften Sitzungsdaten. Wenn nicht gefunden, erstellen Sie einen neuen Datensatz.
b
xxx, Sie können es auch tun durch POST Pass-Sitzungswert.
Wenn der Client die Verwendung von Cookies verbietet, können Sie die folgenden Methoden verwenden:
a php.ini session.use_trans_sid = 1 oder die Option --enable-trans-sid ist während der Kompilierung aktiviert, damit PHP die Sitzungs-ID automatisch seitenübergreifend weitergeben kann.
b. Übergeben Sie den Wert manuell über die URL und die Sitzungs-ID über das ausgeblendete Formular.
c. Speichern Sie session_id in einer Datei, Datenbank usw. und rufen Sie sie während des seitenübergreifenden Prozesses manuell auf.
Link:http://apps.hi.baidu.com/share/detail/41643457
Sitzung kann auch verwendet werden, wenn Cookies deaktiviert sind:
Session.use_cookies=1 in php.ini, ändern Sie es auf 0, die Sitzung wird auf der Serverseite gespeichert, nicht im Client-Cookie.
Sie können den Sitzungsspeicherort des Servers über session.save_path anzeigen
Sitzungsnutzung:
zB:
PHP-Code
- // page1.php
- session_start() ;
- Echo 'Willkommen auf Seite #1'; 🎜>
- /* Sitzungsvariable erstellen und der Sitzungsvariablen einen Wert zuweisen */
- $_SESSION[' favcolor '] = 'grün'; _SESSION['animal' ] =
- 'cat'; $_SESSION['time' ] = time();
- // Wenn der Client Cookies verwendet, kann die Sitzung direkt an übergeben werden page2.php
- echo '
page 2'; // Wenn der Client Cookies deaktiviert - echo '
Seite 2' ; > /* - Standardmäßig lautet die SID unter php5.2.1 Nur in das Cookie geschrieben Es wird gleichzeitig ein Wert vorhanden sein. Wenn das der Sitzung entsprechende Cookie bereits vorhanden ist die SID wird (undefiniert) leer sein
- */
- >// page2.php
- session_start() ;
- print $_SESSION['animal' ]
var_dump($_SESSION
- // Drucken Sie Seite1 aus. Der von .php übergebene Sitzungswert
- Sitzung löschen:
- zB:PHP-Code
,time()-3600 ); Außer der eigentlichen Sitzung:
=
array();
// Schritt 3: Löschen Sie das globale Variablenarray $_SESSION
-
?>
---------------------- -------------------------------------------------- -------------------------------------------------- -- ----
Ein einfaches Beispiel:
PHP-Code:
PHP-Code
- session_start();
- if (isset($_SESSION ['test_sess'])){
- $_SESSION['test_sess']++;
- }else{
- $_SESSION['test_sess'] = 0;
- }
- echo
- $_SESSION ['test_sess']
Erste Anfrage an den Server:
GET /test.php HTTP/1.1 Akzeptieren : */* Referer: http://localhost/
Accept-Language: zh-cnAccept-Encoding: gzip , deflate User-Agent: Mozilla/4.0 (kompatibel; MSIE 6.0 ; Windows NT 5.1; Maxthon; .NET CLR 1.1.4322) Host: localhost Verbindung: Keep-Alive
Der Server kehrt zum ersten Mal zurück:
>HTTP/1.1 200 OK Datum: Fr, 26. August 2005 07:44:22 GMT Server: Apache/2.0.54 (Win32) SVN/1.2.1 PHP/5.0.4 DAV/ 2 X-Powered-By: PHP/5.0.4 Set-Cookie: PHPSESSID=bmmc3mfc94ncdr15ujitjogma3; path=/
Läuft ab: Do, 19. November 1981 08:52:00 GMTCache- Kontrolle: kein Speichern, kein Cache, erneute Validierung erforderlich, Nachprüfung=0, Vorprüfung=0 Pragma: kein Cache Content-Length: 1 Keep-Alive: timeout= 15, max=99
Zweite Anfrage an den Server:
Verbindung: Keep-Alive
Content-Type: text/html; charset=utf-8
Content-Language: Aus
GET /test.php HTTP/1.1 Akzeptieren: */* Referer: http://localhost / Accept-Language: zh-cn Akzeptieren -Kodierung: gzip, deflate
User-Agent: Mozilla/4.0 (kompatibel; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1. 4322)Host: localhost Verbindung: Keep- Alive Cookie: PHPSESSID=bmmc3mfc94ncdr15ujitjogma3
Der Server zum zweiten Mal zurückgekehrt:
HTTP/1.1 200 OK
Datum: Fr, 26. August 2005 07:44:23 GMT
Server: Apache/2.0.54 (Win32) SVN/1.2. 1 PHP/5.0.4 DAV/2
X-Powered-By: PHP/5.0.4
Set-Cookie: PHPSESSID=bmmc3mfc94ncdr15ujitjogma3; path=/ :00 GMT
Cache-Control: no-store , kein Cache, muss erneut validiert werden, Nachprüfung=0, Vorprüfung=0
Pragma: kein Cache
Inhaltslänge: 1
Keep-Alive: Zeitüberschreitung=15, max=98
Verbindung: Keep-Alive
Inhaltstyp: text/html; charset=utf-8
Inhaltssprache: AusWenn man diese Ausgaben sorgfältig vergleicht, enthält die zweite Anfrage mehr Informationen als die erste Anfrage: Cookie: PHPSESSID =bmmc3mfc94ncdr15ujitjogma3
Dieser Header sendet Cookie-Informationen an den Server. Ich sage dem Server, dass ich ein Cookie namens PHPSESSID habe und der Inhalt bmmc3mfc94ncdr15ujitjogma3 ist.
Woher kommt dieser Keks? Schauen Sie sich die vom Server zum ersten Mal zurückgegebenen Informationen an:
Set-Cookie: PHPSESSID=bmmc3mfc94ncdr15ujitjogma3; path=/
Dies ist der Server, der ein Cookie an den Client-Browser schreibt. Der Name ist PHPSESSID und der Wert ist bmmc3mfc94ncdr15ujitjogma3. Dieser Wert ist eigentlich die sogenannte session_id.
Wenn wir uns die zweite Anfrage an den Server ansehen, wird das PHPSESSID-Cookie immer noch an den Server gesendet.
Die folgenden Schlussfolgerungen können gezogen werden:
1 durch Cookies durchsucht werden. Der Server sendet eine Sitzung
2. Jedes Mal, wenn eine Anfrage an den Server gestellt wird, hängt der lokale Browser das Cookie an die Anfrageinformationen anZusammenfassung:
Solange die Sitzung verwendet wird, wird die Sitzung über Cookies an den Client-Browser gesendet Tatsächlich Sitzung ist ein völlig abstraktes Konzept. Was die Sitzung wirklich benötigt, ist, dass zusätzlich zu den von get und post bereitgestellten Parametern zusätzliche Informationen für einen bestimmten Benutzer (vielleicht einen Browser, einen Computer usw.) gespeichert werden können sogar eine IP). Wenn wir die vom System bereitgestellte Sitzung nicht nutzen, können wir beispielsweise die Daten, die wir ursprünglich in der Sitzung speichern möchten, serialisieren und dann zu einem String verschlüsseln und in allen URLs und Formularen weitergeben die Seite. Nachdem der Server die Seitenanforderung erhalten hat, entnimmt er die geheime Zeichenfolge aus get oder post, deckt sie auf und stellt die Daten wieder her. Dies ist eigentlich dasselbe wie bei der Sitzung. Es ist nur so, dass diese Methode super ist und zu viel zusätzliche Arbeit erfordert, um sie umzusetzen.
Aus technischer Sicht besteht die Sitzung darin, die zusätzlichen Daten, die zwischen Webseiten-Links gespeichert werden sollen, mit einer ID zu benennen und sie auf der Serverseite zu speichern. Der Browser muss diese ID nur für jeden Abruf oder Beitrag bereitstellen. Sie können die zuvor gespeicherten Daten abrufen. PHP verwendet standardmäßig Dateien zum Speichern von Daten. Unter Unix erstellt PHP im Allgemeinen einen Dateinamen wie „sess_“+$session_id unter /tmp. Über diesen Namen können Sie die Daten, die session_id entsprechen, direkt finden. Daher besteht das Kernkonzept der Sitzung darin, dass zusätzliche Daten zum Wechseln zwischen Webseiten auf dem Server gespeichert und mit einer ID identifiziert werden. Um die Sitzung aufrechtzuerhalten, muss der Browser diese ID bei jeder Übermittlung mitbringen.
Wie kann der Browser diese ID bei jeder Anfrage mitbringen? Der dumme Weg ist natürlich, jedem URL-Link oder Formularbeitrag einen ID-Parameter hinzuzufügen. Der einfachere Weg ist natürlich die Speicherung über Cookies. Es gibt jedoch immer noch ein Problem mit der Cookie-Lösung. Was ist zu tun, wenn der Browser keine Cookies unterstützt?
Die oben genannte Sitzung ist die von PHP4 und 5 bereitgestellte Sitzungsfunktion. Sie müssen wissen, dass das System Hat die Sitzungsfunktion vor PHP4 nicht bereitgestellt! Und viele CGI-Programme sind vollständig selbst implementierte Sitzungen. Für von PHP(4,5) bereitgestellte Sitzungen verwendet das System standardmäßig Cookies, um die Sitzungs-ID zu speichern
In meinem vorherigen Projekt nutzten alle Benutzer das Web im Intranet. Um die Verwaltung zu erleichtern, ist die Browser-IP direkt an eine Sitzung gebunden, d. h. die Browser-IP-Adresse wird anstelle der Sitzungs-ID verwendet. In dieser Lösung gibt es kein Cookie, aber es handelt sich dennoch um eine Sitzung, da es nicht außerhalb der Definition einer Sitzung fällt.Jedes Mal, wenn eine Anfrage an den Server gestellt wird, hängt der lokale Browser das Cookie an die Anfrageinformationen an Tatsächlich Es ist dasselbe wie Session und hat nichts damit zu tun, es geht nur darum, wie Cookies im http-Protokoll funktionieren. Dieses Cookie wird von der Funktion session_start() geschrieben. Wir können das Cookie auch beliebig schreiben, solange es geschrieben wird und die Gültigkeitsdauer nicht abgelaufen ist.
Das Obige stellt die PHP-Version vor – das Prinzip und die Anwendung von HTTP-Sitzungscookies, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
