Sessions (συνεδρίες)

Ένα session ξεκινάει μόλις ανοίξουμε το site στο browser και τερματίζει όταν τον κλείσουμε εντελώς. Οι τελευταίες εκδόσεις των browsers υποστηρίζουν το άνοιγμα πολλών σελίδων σε ετικέτες. Στην περίπτωση που κλείσουμε ένα site (κλείσουμε δηλαδή την ετικέτα του), ωστόσο ο browser συνεχίζει να είναι ανοιχτός με άλλα site, η συνεδρία του πρώτου site ΔΕΝ έχει τελειώσει. Αν ανοίξουμε πάλι το site σε νέα ετικέτα, η συνεδρία συνεχίζει από το σημείο που είχε μείνει. Μόνο αν κλείσουμε εντελώς τον browser, τερματίζει και η συνεδρία του site.

Το session περιέχει μεταβλητές οι οποίες μεταφέρονται σε έναν ιστότοπο από μία σελίδα σε μία άλλη κατά την περιήγηση του χρήστη στο site αυτό. Η διαδικασία αυτή είναι πολύ χρήσιμη γιατί μπορεί να είναι αναγκαίο να αποθηκευτούν συγκεκριμένες πληροφορίες που αφορούν το χρήστη. Για παράδειγμα, σε ένα e-shop (δηλαδή site στο οποίο πραγματοποιούνται διαδικτυακές αγορές), ο χρήστης μπορεί να θέλει να προσθέτει διάφορα προϊόντα στο καλάθι του κατά την περιήγησή του σε αυτά και μετά να προχωρήσει στη μαζική αγορά τους. Για να αποθηκεύονται κάθε φορά τα προϊόντα και η ποσότητά που επιλέγει ο χρήστης, πρέπει να καταχωρείται κάπου η ανάλογη πληροφορία. Αυτό μπορεί να επιτευχθεί με ένα session και τις μεταβλητές του.


Έναρξη session
Για να ξεκινήσει ένα session είναι υποχρεωτικό να υπάρχει πριν την ετικέτα <html> του αρχείου η κλήση της συνάρτησης session_start().

Παράδειγμα

<?php
    session_start ();
?>
<html>
<body>

</body>
</html> 


Δημιουργία μεταβλητής session
Για να δημιουργήσουμε μία μεταβλητή session χρησιμοποιούμε τη μεταβλητή $_SESSION της PHP.

Παράδειγμα

<?php
    session_start ();
    $_SESSION ['login'] = 0;
?>
<html>
<body>
<?php
    if ( $_SESSION ['login'] == 0 )
    {
        echo "<a href='login.php'>Σύνδεση μέλους</a>";
    } // end if
    else
    {
        echo "<a href='logout.php'>Αποσύνδεση</a>";
    } // end else
?>
</body>
</html>

Η μεταβλητή $_SESSION ['login'] είναι προσβάσιμη από κάθε σελίδα που ξεκινάει με τη συνάρτηση session_start. Κατά τη σύνδεση ενός χρήστη, μπορούμε να αλλάξουμε την τιμή της σε 1 και να εμφανίζεται η επιλογή για αποσύνδεση του μέλους.


Διαγραφή μίας μεταβλητής session
Για να διαγράψουμε μία μεταβλητή session, χρησιμοποιούμε τη συνάρτηση unset (), η οποία μπορεί να χρησιμοποιηθεί γενικότερα για τη διαγραφή μιας μεταβλητής.

<?php
    session_start ();
    $_SESSION ['login'] = 0;
?>
<html>
<body>
<?php
    unset ( $_SESSION ['login'] );
?>
</body>
</html>

Αν θέλουμε να διαγράψουμε ολόκληρο το session, χρησιμοποιούμε τη συνάρτηση session_destroy().

<?php
    session_start ();
    $_SESSION ['login'] = 0;
?>
<html>
<body>
</body>
</html>
<?php
    session_destroy ();
?>