Διάρκεια ζωής των cookies στο PHP
Γνωρίζετε ήδη ότι τα cookies πρέπει να γράφονται με
τη βοήθεια της συνάρτησης setcookie:
<?php
setcookie('test', 'abcde');
?>
Ωστόσο, τέτοια cookies δεν ζουν για πολύ - μόνο
μέχρι το κλείσιμο του browser. Για να επεκτείνετε τη διάρκεια ζωής
ενός cookie μπορείτε να χρησιμοποιήσετε την τρίτη παράμετρο,
που δέχεται μια χρονική στιγμή σε μορφή
timestamp. Μόλις φτάσει αυτή η χρονική στιγμή
- το cookie θα διαγραφεί αυτόματα
από το browser.
Ωστόσο, δεν είναι πολύ βολικό να ορίζουμε μια συγκεκριμένη χρονική στιγμή λήξης για το cookie. Θα ήταν πιο βολικό να ορίσουμε ένα cookie, για παράδειγμα, για μια ώρα από την τρέχουσα στιγμή, ή για μια μέρα, ή για ένα χρόνο.
Γι' αυτό η τρίτη παράμετρος συνήθως γράφεται
έτσι: τρέχουσα χρονική στιγμή + N δευτερόλεπτα.
Η τρέχουσα χρονική στιγμή σε μορφή μπορεί
να ληφθεί με τη βοήθεια της συνάρτησης time.
Ας ορίσουμε, για παράδειγμα, ένα cookie για μία
ώρα. Εφόσον σε μία ώρα υπάρχουν 3600 δευτερόλεπτα,
θα προσθέσουμε αυτόν τον αριθμό στην τρέχουσα χρονική στιγμή:
<?php
setcookie('test', 'abcde', time() + 3600);
?>
Κατά τον ορισμό cookies συνήθως καθορίζονται τα δευτερόλεπτα
με αυτήν τη μορφή: - αυτό είναι μία ώρα, 60 * 60 - αυτό είναι μία μέρα. Και ούτω καθεξής.
Αυτό γίνεται έτσι ώστε να είναι προφανές για αυτόν που διαβάζει τον
κώδικά σας για ποιο χρονικό διάστημα
έχει οριστεί το cookie.
60
* 60 * 24
Ας ορίσουμε, για παράδειγμα, ένα cookie για μία μέρα:
<?php
setcookie('test', 'abcde', time() + 60 * 60 * 24);
?>
Ορίστε ένα οποιοδήποτε cookie για ένα μήνα.
Ορίστε ένα οποιοδήποτε cookie για ένα χρόνο.
Ορίστε ένα οποιοδήποτε cookie για 10 χρόνια.