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