Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Sitzungssteuerungssitzung und Cookie-Einführung

PHP-Sitzungssteuerungssitzung und Cookie-Einführung

小云云
小云云Original
2018-03-02 09:47:031631Durchsuche

1. Cookies

1>Einführung in Cookies

Cookies sind im Client-Browser gespeicherte Daten, die über Cookies verfolgt und gespeichert werden können. Im Allgemeinen werden Cookies über HTTP-Header vom Server an den Client zurückgegeben. Die meisten Webprogramme unterstützen den Betrieb von Cookies, da Cookies in HTTP-Headern vorhanden sind.
In PHP werden Cookies über die Setcookie-Funktion gesetzt. PHP speichert jedes vom Browser zurückgesendete Cookie automatisch in der Form

_COOKIE[‘key’], um einen Cookie-Wert zu lesen.
Bei der Verwendung einer Sitzung wird in der Regel ein Cookie zur Speicherung der Sitzungs-ID zur Identifizierung des Benutzers verwendet. Das Cookie hat eine Gültigkeitsdauer. Nach Ablauf der Gültigkeitsdauer wird das Cookie automatisch vom Client gelöscht.

2>Cookies setzen
setcookie()
Bedeutung: Wird zum Setzen von Cookies verwendet. Die Funktion setcookie() enthält 7 Parameter (nur 5 häufig verwendete Parameter).
Syntax: setcookie(Name, Wert, Ablaufdatum, Pfad, Domäne, sicher, nur http)
Rückgabewert: Wenn vor dem Aufruf dieser Funktion eine Ausgabe erfolgt, schlägt setcookie() fehl und gibt FALSE zurück. Wenn setcookie() erfolgreich ausgeführt wird, wird TRUE zurückgegeben. Dies bedeutet nicht, ob der Benutzer Cookies akzeptiert.

Parameter:
Name:
Der Name des Cookies, auf den über $_COOKIE[‘name’] zugegriffen wird.
Wert:
 Cookie-Wert
ablaufen:
 Die Zeit, zu der das Cookie abläuft. Dies ist ein Unix-Zeitstempel in Sekunden. Sie können es mit der Funktion time() plus der Anzahl der Sekunden festlegen, vor denen es ablaufen soll. Oder Sie können mktime() verwenden. Wenn es auf 0 gesetzt oder weggelassen wird, läuft das Cookie am Ende der Sitzung ab (wenn der Browser geschlossen wird), der Standardwert ist 0.
Pfad:
(gültiger Pfad) Wenn der Pfad auf „/“ gesetzt ist, ist die gesamte Website gültig, wenn er auf „/foo/“ gesetzt ist, befindet sich das Cookie nur im Verzeichnis /foo/ und allen Unterverzeichnissen wie /foo/bar/ von Verfügbare Domains.
Domäne:
(Die Domäne, in der das Cookie verfügbar ist) Standardmäßig ist es für den gesamten Domänennamen gültig. Um das Cookie für die gesamte Domäne (einschließlich aller seiner Unterdomänen) verfügbar zu machen, setzen Sie einfach den Wert auf den Domänennamen (in diesem Fall). „example.com“).
sicher:
„Zeigt an, dass dieses Cookie nur über die sichere HTTPS-Verbindung des Clients übertragen werden kann. Bei TRUE wird das Cookie nur gesetzt, wenn eine sichere Verbindung besteht. Auf der Serverseite können Programmierer diese Art von Cookie nur über eine sichere Verbindung senden (z. B. relativ zu

value, time()+3600, „path/“, „baidu.com“); und Domäne

3> Cookie-Löschung und Ablaufzeit
Es gibt keine in PHP angegebene Funktion zum Löschen von Cookies. Stattdessen wird die Ablaufzeit des Cookies auf einen früheren Zeitpunkt als die aktuelle Zeit gesetzt verfällt automatisch und das Cookie wird gelöscht.

4> Bestimmen Sie, ob das Cookie leer ist
isset()
Bedeutung: Bestimmen Sie, ob ein Cookie vorhanden ist.
Syntax: isset (entsprechendes Cookie-Attribut);
Rückgabewert: wahr/falsch

setcookie("name","SYN");if( isset( $_COOKIE["name"])){    echo  $_COOKIE["name"];
}else{    echo "不存在";
}

Ähnlichkeiten und Unterschiede zwischen Sitzung und Cookie

Cookie:
1. Das Speichern von Daten auf dem Client und das Herstellen einer Verbindung zwischen dem Benutzer und dem Server können normalerweise viele Probleme lösen, Cookies weisen jedoch immer noch einige Einschränkungen auf:
2. Cookies sind relativ nicht sehr sicher und können leicht gestohlen werden, was zu Cookie-Betrug führt
3. Der Wert eines einzelnen Cookies kann maximal 4 KB speichern
4. Jede Anfrage erfordert eine Netzwerkübertragung und belegt Bandbreite

Sitzung:
1. Speichern Sie die Sitzungsdaten des Benutzers ohne Größenbeschränkung auf dem Server,
2. Die Benutzeridentifizierung erfolgt über eine Sitzungs-ID. Standardmäßig wird die PHP-Sitzungs-ID über Cookies gespeichert

//开始使用sessionsession_start();//设置一个session$_SESSION['test'] = time();//显示当前的session_idecho "session_id:".session_id();echo "<br>";//读取session值echo $_SESSION['test'];//销毁一个sessionunset($_SESSION['test']);echo "<br>";
var_dump($_SESSION);

2. Sitzung

1>Sitzungsnutzung

Führen Sie zuerst die Methode session_start aus, um die Sitzung zu öffnen, und lesen und schreiben Sie dann die Sitzung über die globale Variable $_SESSION. Standardmäßig werden Sitzungen in Form von Dateien auf dem Server gespeichert. Wenn daher eine Sitzung auf einer Seite geöffnet wird, ist die Sitzungsdatei ausschließlich belegt. Dies führt dazu, dass andere gleichzeitige Zugriffe des aktuellen Benutzers nicht ausgeführt werden können Warten. Dieses Problem kann durch die Verwendung von Cache- oder Datenbankspeicher gelöst werden.
Die Sitzung kodiert und dekodiert den festzulegenden Wert automatisch, sodass die Sitzung jeden Datentyp, einschließlich Daten und Objekte, unterstützen kann.

session_start();$_SESSION['ary'] = array('name' => 'jobs');$_SESSION['obj'] = new stdClass();
var_dump($_SESSION);

2>Sitzung löschen und zerstören

unset()
Verwenden Sie in PHP die Funktion unset, um einen bestimmten Sitzungswert zu löschen. Nach dem Löschen wird er aus der globalen Variablen $_SESSION entfernt und es kann nicht darauf zugegriffen werden.

session_start();$_SESSION['name'] = 'jobs';unset($_SESSION['name']);echo $_SESSION['name']; //提示name不存在

session_destroy()
Die Funktion session_destroy löscht alle Daten, die session_id ist jedoch weiterhin vorhanden.

session_start();$_SESSION['name'] = 'jobs';$_SESSION['time'] = time();
session_destroy();

Besonderer Hinweis:
session_destroy() zerstört die globale Variable

_SESSION nicht sofort, bis sie leer ist. Wenn Sie also $_SESSION sofort zerstören müssen, können Sie unset() verwenden.

3>Sitzung zum Speichern von Benutzeranmeldeinformationen verwenden

登录信息既可以存储在sessioin中,也可以存储在cookie中,他们之间的差别在于session可以方便的存取多种数据类型,而cookie只支持字符串类型,同时对于一些安全性比较高的数据,cookie需要进行格式化与加密存储,而session存储在服务端则安全性较高。

<?phpsession_start();//假设用户登录成功获得了以下用户数据$userinfo = array(    &#39;uid&#39;  => 1011,    'name' => 'spark',    'email' => '1637167XX@qq.com',    'sex'  => 'F');
header("content-type:text/html; charset=utf-8");/* 将用户信息保存到session中 */$_SESSION['uid'] = $userinfo['uid'];$_SESSION['name'] = $userinfo['name'];$_SESSION['userinfo'] = $userinfo;//* 将用户数据保存到cookie中的一个简单方法 */$str =serialize($userinfo); //将用户信息序列化setcookie('userinfo', $str);

了解更多关于序列化serialize;

相关推荐:

php用户登录代码session、cookie自动记忆功能

cookie 和session 的定义和区别

php session会话如何写入redis

Das obige ist der detaillierte Inhalt vonPHP-Sitzungssteuerungssitzung und Cookie-Einführung. 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