Άμεση ρύθμιση cookies σε PHP
Για να εμφανιστεί αμέσως ένα cookie που έχει ρυθμιστεί
στον πίνακα $_COOKIE, μπορείτε
να χρησιμοποιήσετε μια έξυπνη τεχνική.
Η ουσία της τεχνικής είναι η εξής: πρώτα ρυθμίζουμε
το cookie χρησιμοποιώντας τη setcookie, και στη συνέχεια
το γράφουμε χειροκίνητα στον πίνακα $_COOKIE:
<?php
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
var_dump($_COOKIE['str']); // θα εμφανίσει αμέσως 'eee'
?>
Για να μην στέλνεται το cookie κάθε φορά στο πρόγραμμα περιήγησης, μπορούμε να τοποθετήσουμε τη εγγραφή του cookie μέσα σε μια συνθήκη. Εάν δεν υπάρχει τέτοιο cookie, τότε το ρυθμίζουμε:
<?php
if (!isset($_COOKIE['str'])) { // εάν δεν υπάρχει cookie
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
}
echo $_COOKIE['str']; // θα εμφανίσει 'eee'
?>
Ας συζητήσουμε πώς λειτουργεί αυτό. Κατά την πρώτη
επίσκεψη στη σελίδα, θα μπούμε στο if,
θα ρυθμίσουμε το cookie στο πρόγραμμα περιήγησης και αμέσως θα το γράψουμε
στο $_COOKIE. Στη συνέχεια, μέσω του echo
θα εμφανιστεί η τιμή που γράψαμε χειροκίνητα.
Στις επόμενες επισκέψεις στη σελίδα, δεν θα μπούμε
στο if, αλλά στο $_COOKIE θα περιέχεται
το cookie μας, που έχει ήδη έρθει από το πρόγραμμα περιήγησης.
Έτσι, τόσο στην πρώτη επίσκεψη, όσο και στις
επόμενες, στο $_COOKIE θα βρίσκεται
το cookie μας.
Δοκιμάστε την τεχνική που περιγράφηκε.