Σεances στο PHP

Οι μεταβλητές session του PHP χρησιμοποιούνται για την αποθήκευση πληροφοριών σχετικά με τη συνεδρία του χρήστη ή για την αλλαγή των ρυθμίσεων της συνεδρίας. Οι πληροφορίες που αποθηκεύονται στις μεταβλητές session είναι για μοναδικό χρήστη και είναι διαθέσιμες σε όλες τις σελίδες της εφαρμογής.

Μεταβλητές PHP Session

Όταν εκτελείτε μια εφαρμογή, ανοίγετε την, κάνετε μερικές αλλαγές και μετά την κλείνετε. Αυτό είναι σαν μια συνεδρία. Ο υπολογιστής ξέρει ποιος είστε. Ξέρει πότε ξεκινήσατε την εφαρμογή και πότε την τελείωσατε. Αλλά στο Διαδίκτυο, υπάρχει ένα πρόβλημα: ο διακομιστής δεν ξέρει ποιος είστε και τι κάνετε, λόγω της αδυναμίας του HTTP address να διατηρήσει την κατάσταση.

Με την αποθήκευση πληροφοριών χρήστη στο διακομιστή για μελλοντική χρήση, το PHP session λύνει αυτό το πρόβλημα (π.χ. όνομα χρήστη, προϊόντα αγοράς κ.λπ.). Ωστόσο, οι πληροφορίες συνεδρίας είναι προσωρινές και διαγράφονται όταν ο χρήστης αποχωρεί από τον ιστότοπο. Αν χρειάζεστε μόνιμη αποθήκευση πληροφοριών, μπορείτε να αποθηκεύσετε δεδομένα στη βάση δεδομένων.

Το μηχανισμό λειτουργίας της συνεδρίας είναι: δημιουργία μοναδικού id (UID) για κάθε επισκέπτη και αποθήκευση μεταβλητών με βάση αυτό το UID. Το UID αποθηκεύεται σε cookie ή μεταφέρεται μέσω URL.

Ξεκινήστε τη PHP Συνεδρία

Πριν αποθηκεύσετε τις πληροφορίες χρήστη στο PHP session, πρέπει πρώτα να ξεκινήσετε τη συνεδρία.

注释:Η συνάρτηση session_start() πρέπει να βρίσκεται πριν από τα ετικέτες <html>:

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

Το παραπάνω κώδικας εγγράφει την συνεδρία του χρήστη στο διακομιστή, ώστε να μπορείτε να αποθηκεύσετε πληροφορίες χρήστη και να αναθέσετε έναν UID στη συνεδρία του χρήστη.

Αποθήκευση Session μεταβλητών

Η σωστή μέθοδος αποθήκευσης και ανακτήσης μεταβλητών session είναι η χρήση της μεταβλητής $_SESSION του PHP:

<?php
session_start();
// store session data
$_SESSION['views']=1;
?>
<html>
<body>
<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>
</body>
</html>

输出:

Pageviews=1

在下面的例子中,我们创建了一个简单的 page-view 计数器。isset() 函数检测是否已设置 "views" 变量。如果已设置 "views" 变量,我们累加计数器。如果 "views" 不存在,则我们创建 "views" 变量,并把它设置为 1:

<?php
session_start();
if(isset($_SESSION['views']))
  $_SESSION['views']=$_SESSION['views']+1;
else
  $_SESSION['views']=1;
echo "Views=". $_SESSION['views'];
?>

终结 Session

如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。

unset() 函数用于释放指定的 session 变量:

<?php
unset($_SESSION['views']);
?>

您也可以通过 session_destroy() 函数彻底终结 session:

<?php
session_destroy();
?>

注释:session_destroy() 将重置 session,您将失去所有已存储的 session 数据。