PHP setcookie() συνάρτηση
Ορισμός και χρήση
Η συνάρτηση setcookie() αποστέλλει ένα HTTP cookie στον πελάτη.
Το cookie είναι μια μεταβλητή που αποστέλλεται από τον διακομιστή στον περιηγητή. Το cookie είναι συνήθως ένα μικρό κείμενο αρχείο που ο διακομιστής ενσωματώνει στον υπολογιστή του χρήστη. Καθε φορά που ο υπολογιστής ζητά μια σελίδα μέσω του περιηγητή, αποστέλλεται αυτό το cookie.
Το όνομα του cookie καθορίζεται ως η ίδια μεταβλητή. Για παράδειγμα, αν το cookie που αποστέλλεται ονομάζεται "name", δημιουργείται αυτόματα η μεταβλητή $user που περιέχει την τιμή του cookie.
Πρέπει να ρυθμιστεί το cookie πριν από οποιαδήποτε άλλη αποστολή εκτύπωσης.
Αν επιτυχής, η συνάρτηση επιστρέφει true, αλλιώς false.
Γραμματική
setcookie(name,value,expire,path,domain,secure)
Παράμετροι | Περιγραφή |
---|---|
name | Απαιτείται. Προκαθορίζει το όνομα του cookie. |
value | Απαιτείται. Προκαθορίζει την τιμή του cookie. |
expire | Προαιρετικό. Προκαθορίζει τη διάρκεια ζωής του cookie. |
path | Προαιρετικό. Προκαθορίζει το δίκτυο του διακομιστή του cookie. |
domain | Προαιρετικό. Προκαθορίζει το όνομα του τομέα του cookie. |
secure | Προαιρετικό. Προκαθορίζει αν το cookie πρέπει να μεταφέρεται μέσω ασφαλούς HTTPS συνδέσεων. |
Σημειώσεις και σχόλια
Σημειώσεις:Η τιμή του cookie με το όνομα "user" μπορεί να αποκτηθεί μέσω $HTTP_COOKIE_VARS["user"] ή $_COOKIE["user"].
Σημειώσεις:Κατά την αποστολή cookie, η τιμή του cookie κωδικοποιείται αυτόματα ως URL. Κατά την λήψη, γίνεται URL ατεκνοποίηση. Αν δεν χρειάζεστε αυτό, μπορείτε να χρησιμοποιήσετε setrawcookie() Αντικαθιστώντας.
Παράδειγμα
Παράδειγμα 1
Ρύθμιση και αποστολή cookie:
<?php $value = "my cookie value"; // Στείλει ένα απλό cookie setcookie("TestCookie",$value); ?> <html> <body> ... ...
<?php $value = "my cookie value"; // Στείλει ένα cookie που λήγει μετά από 24 ώρες setcookie("TestCookie",$value, time()+3600*24); ?> <html> <body> ... ...
Παράδειγμα 2
Αναζητήσεις διαφορετικών μεθόδων για την τιμή του cookie:
<html> <body> <?php // Εκτυπώνει ένας συγκεκριμένος cookie echo $_COOKIE["TestCookie"]; echo "<br />"; echo $HTTP_COOKIE_VARS["TestCookie"]; echo "<br />"; // 输出所有 cookie print_r($_COOKIE); ?> </body> </html>
输出:
my cookie value my cookie value Array ([TestCookie] => my cookie value)
例子 3
// 通过把失效日期设置为过去的日期/时间,删除一个 cookie:
<?php // 把失效日期设置为一小时前 setcookie ("TestCookie", "", time() - 3600); ?> <html> <body> ... ...
例子 4
创建一个数组 cookie:
<?php setcookie("cookie[three]","cookiethree"); setcookie("cookie[two]","cookietwo"); setcookie("cookie[one]","cookieone"); // 输出 cookie (在重载页面后) if (isset($_COOKIE["cookie"])) { foreach ($_COOKIE["cookie"] as $name => $value) { echo "$name : $value <br />"; } } ?> <html> <body> ... ...
输出:
three : cookiethree two : cookietwo one : cookieone