Σessions σε PHP
Όταν βλέπουμε μια σελίδα ιστοτόπου στο πρόγραμμα περιήγησής μας, το PHP script αυτής της σελίδας έχει ήδη εκτελεστεί και μας έχει "ξεχάσει". Επομένως, αν μεταβαίνουμε από μια σελίδα του ιστοτόπου σε μια άλλη - το PHP script δεν μπορεί να θυμάται δεδομένα από την προηγούμενη σελίδα, για παράδειγμα, τις τιμές των μεταβλητών.
Ωστόσο, ένας τέτοιος μηχανισμός είναι απαραίτητος, τουλάχιστον για να θυμάται την επιλογή του χρήστη ή ότι ο χρήστης ήταν πιστοποιημένος.
Στη PHP για την αποθήκευση δεδομένων του χρήστη μεταξύ σελίδων του ιστοτόπου προορίζονται τα sessions. Μπορούμε να εγγράφουμε οποιαδήποτε πληροφορία σε ένα session και να την διαβάζουμε από εκεί στην επόμενη εκτέλεση αυτού ή άλλου script του ιστοτόπου. Με τη βοήθεια sessions μπορούμε να υλοποιήσουμε πιστοποίηση χρηστών, καλάθι αγορών ηλεκτρονικού εμπορίου και άλλα.
Το session του χρήστη αποθηκεύεται στον διακομιστή. Σε αυτή την περίπτωση δεν ζει για πάντα, αλλά μόνο για περίπου μισή ώρα - εάν ο χρήστης κατά τη διάρκεια αυτής της ώρας δεν εκτέλεσε καμία ανταλλαγή δεδομένων με τον ιστότοπο, τότε το session του διαγράφεται και γίνεται κενό.
Λοιπόν, ας δούμε πώς να δουλέψουμε
με sessions στη PHP.
Για να γράψουμε κάτι σε ένα session, πρώτα
πρέπει να το αρχικοποιήσουμε χρησιμοποιώντας τη συνάρτηση
session_start:
<?php
session_start();
?>
Μετά την αρχικοποίηση μπορούμε να γράψουμε κάτι
στο session ή να διαβάσουμε κάτι από εκεί.
Αυτό γίνεται με τη βοήθεια του superglobal πίνακα
$_SESSION.
Ας δοκιμάσουμε στην πράξη. Ας φτιάξουμε το αρχείο
test1.php και να τοποθετήσουμε σε αυτό τον ακόλουθο κώδικα:
<?php
session_start();
$_SESSION['test'] = 'abcde'; // γράφουμε στο session
?>
Και στο αρχείο test2.php - τον ακόλουθο κώδικα:
<?php
session_start();
echo $_SESSION['test']; // διαβάζουμε από το session
?>
Τώρα, για αρχή, ανοίξτε στο πρόγραμμα περιήγησης το αρχείο
test1.php, και μετά το test2.php.
Όταν ανοίξετε το δεύτερο αρχείο στο πρόγραμμα περιήγησης, θα εμφανιστεί
αυτό που είχε γραφτεί στο session στο πρώτο αρχείο.
Φτιάξτε δύο αρχεία. Κατά την εκτέλεση του πρώτου αρχείου γράψτε στο session δύο αριθμούς, και κατά την εκτέλεση του δεύτερου αρχείου - εμφανίστε στην οθόνη το άθροισμα αυτών των αριθμών.