HTTP Cookies (ΜΑΘΗΜΑ 11)

...ασύγχρονα μαθήματα γλώσσας PHP

HTTP Cookies (ΜΑΘΗΜΑ 11)

Δημοσίευσηαπό M.Jackson » 07 Σεπ 2013, 12:41

ΜΑΘΗΜΑ 11 HTTP Cookies


Τα cookies είναι αρχεία κειμένου μικρού μεγέθους που οι ιστοσελίδες χρησιμοποιούν για να αποθηκεύσουν πληροφορίες στον υπολογιστή μας έτσι ώστε να μπορούν κατά την επόμενη μας σύνδεση στην ιστοσελίδα να μας εξυπηρετήσουν πιο εύκολα (π.χ "να με θυμάσαι" κατά το login σε κάποια ιστοσελίδα). Τα cookies έχουν ημερομηνία (κατά ακρίβεια δευτερόλεπτα) λήξης, που μπορούν να διαρκέσουν και για χρόνια. Πολλοί αναλυτές και σύμβουλοι ασφαλείας υποστηρίζουν πως η λανθασμένη χρήση των cookies από τους προγραμματιστές μπορεί να στοιχίσει, πράγμα που είναι αληθές σε περίπτωση που ο προγραμματιστής αποθηκεύει τον κωδικό πρόσβασης ή το username του χρήστη χωρίς κρυπτογράφηση. Τέλος με τα cookies μπορείς να αποθηκεύσεις προσωρινές προτιμήσεις (ρυθμίσεις) για τον χρήστη που χρησιμοποιεί την ιστοσελίδα σου χωρίς σύνδεση.

Σύνταξη:
Μορφοποιημένος Κώδικας: Επιλογή όλων
setcookie(όνομα, τιμή, λήξη);


Παράδειγμα:
Μορφοποιημένος Κώδικας: Επιλογή όλων
<?php
setcookie("ubuntu", "Michael Jackson", time()+600);
?>

Ποίο πάνω δημιουργώ ένα cookie με το όνομα ubuntu, τιμή Michael Jackson και λήγει στα επόμενα 10 λεπτά. (1 ώρα = 60 λεπτά = 3600 δευτερόλεπτα)

Μέχρι εδώ ωραία φτιάξαμε το cookie μας του θέσαμε και τιμή, τώρα το χρειαζόμαστε για να τυπώσουμε το username μου στην σελίδα.
Για να αποκτήσουμε πρόσβαση σε ένα cookie θα πρέπει να το κάνουμε εντός του χρονικού περιθωρίου που θέσαμε πριν τα 10 λεπτά στο παράδειγμα μας. Η εντολή που καλούμε ένα cookie είναι πολλή απλή:
Μορφοποιημένος Κώδικας: Επιλογή όλων
$_COOKIE[];


Παράδειγμα:
Μορφοποιημένος Κώδικας: Επιλογή όλων
<?php
$cookie_value = $_COOKIE['ubuntu'];
echo $cookie_value;
?>


Με την πιο κάτω εντολή, μπορούμε να τυπώσουμε με μία εντολή όλα τα cookies που δημιουργήσαμε με το όνομα τους και δίπλα την τιμή τους:
Μορφοποιημένος Κώδικας: Επιλογή όλων
print_r($_COOKIE);


Πως διαγράφουμε ένα cookie; Αυτό συνήθως γίνεται σε ιστοσελίδες που είμαστε συνδεδεμένοι και πατάμε το κουμπί "αποσύνδεση".
Μορφοποιημένος Κώδικας: Επιλογή όλων
<?php
setcookie("user", "", time()-600);
?>

Το μόνο που κάνεις είναι να "δημιουργήσεις" ξανά το ίδιο cookie με το ίδιο όνομα, χωρίς κάποια τιμή και στην λήξη να βάλεις την αρχική τιμή αλλά με αρνητικό πρόσημο, δηλαδή στο πιο πάνω παράδειγμα του λέμε πριν 10 λεπτά.
Άβαταρ μέλους
M.Jackson
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1053
Εγγραφή: 28 Μάιος 2010, 19:06
Εκτύπωση

Επιστροφή στο Μαθήματα PHP