Η ώρα της συνεδρίας έληξε. Δημιουργήστε μια μεταβλητή συνεδρίας. Στον διακομιστή χρησιμοποιώντας την εντολή php

Συνεδρίεςσας επιτρέπει να δημιουργήσετε μια σύνδεση μεταξύ του επισκέπτη και του ιστότοπου χρησιμοποιώντας αναγνωριστικό συνεδρίας.

Οι μεταβλητές περιόδου λειτουργίας και οι τιμές τους αποθηκεύονται μόνο στον διακομιστή. Μόνο το αναγνωριστικό περιόδου σύνδεσης (που δημιουργείται τυχαία) αποθηκεύεται στον υπολογιστή του χρήστη και στον διακομιστή, γεγονός που μας επιτρέπει να δημιουργήσουμε μια σύνδεση μεταξύ του χρήστη και του διακομιστή.

Το αναγνωριστικό περιόδου σύνδεσης που είναι αποθηκευμένο στον υπολογιστή του χρήστη είναι ένα cookie.

Το cookie αποθηκεύεται στο πρόγραμμα περιήγησης του χρήστη και δημιουργείται ένα αντίστοιχο αρχείο στον διακομιστή.

Δημιουργήστε μια συνεδρία

Ο ευκολότερος τρόπος για να ανοίξετε μια συνεδρία είναι να χρησιμοποιήσετε τη συνάρτηση session_start:

// εκκίνηση μιας συνεδρίας session_start();

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

Αυτή η κατασκευή (πρέπει να καλείται μία φορά για κάθε σελίδα) πρέπει να κληθεί πριν από οποιοδήποτε συμπέρασμα(αυτός ο κανόνας λειτουργεί επίσης για το setcookie()), συμπεριλαμβανομένων των διαστημάτων.

Όταν δημιουργείται μια περίοδος λειτουργίας, το ακόλουθο cookie αποστέλλεται στο πρόγραμμα περιήγησης:

PHP

echo "Όνομα περιόδου λειτουργίας: ".session_name(). " Αναγνωριστικό περιόδου λειτουργίας: ".session_id(); // Όνομα περιόδου σύνδεσης: PHPSESSID Αναγνωριστικό περιόδου σύνδεσης: mceu820l02id3ds0vcvtgnht04

Δημιουργήστε μια μεταβλητή συνεδρίας

Μια μεταβλητή περιόδου λειτουργίας δημιουργείται προσθέτοντας μια τιμή στον υπερσφαιρικό πίνακα $_SESSION:

$_SESSION["nick"] = $_POST["name"];

Καταστροφή μεταβλητών συνεδρίας και της ίδιας της συνεδρίας

1 . Μπορείτε να διαγράψετε μια μεταβλητή συνεδρίας ως εξής:

Unset($_SESSION["ψευδώνυμο"]);

Αυτό θα αποτρέψει την επαναχρησιμοποίηση πληροφοριών.

Αλλά είναι καλύτερα να διαγράψετε απλώς τον πίνακα $_SESSION (καταργήστε όλες τις μεταβλητές περιόδου λειτουργίας):

//διαγραφή του πίνακα $_SESSION $_SESSION = array();

2. Πρέπει επίσης να κάνετε τα εξής:

Ορισμός του cookie περιόδου λειτουργίας μη έγκυρο:

Αν (isset($_COOKIE)) ( // session_name() - λάβετε το όνομα του τρέχοντος setcookie συνεδρίας(session_name(), "", time()-86400, "/"); )

Το όνομα της συνεδρίας αναφέρεται στο αναγνωριστικό συνεδρίας στα cookie και στη διεύθυνση URL

3. Καταστροφή (λήξη) συνεδρίας

Session_destroy();

Buffering εξόδου

Εάν έχετε ήδη κάποια έξοδο, μπορείτε να χρησιμοποιήσετε τη συνάρτηση ob_start(). Αυτή η συνάρτηση αποθηκεύει προσωρινά την έξοδο. Τώρα η έξοδος δεν θα σταλεί στο πρόγραμμα περιήγησης, εκτός και αν την επιβάλετε χρησιμοποιώντας τη συνάρτηση ob_end_flush().

"; unset($_SESSION["nick"]); if (isset($_COOKIE)) ( setcookie(session_name(), "", time()-86400, "/"); // περιεχόμενα περιόδου λειτουργίας - κενή συμβολοσειρά ) // το setcookie θα λειτουργήσει χωρίς σφάλματα, αφού μόλις τώρα στείλαμε το αποτέλεσμα στο πρόγραμμα περιήγησης session_destroy();

Από την άλλη πλευρά, δεν είναι πάντα απαραίτητο να χρησιμοποιείται η συνάρτηση ob_end_flush(), αφού ο διερμηνέας PHP θα ξεπλύνει αυτόματα το buffer κατά την εκτέλεση του σεναρίου.

Επαναδημιουργία του αναγνωριστικού περιόδου σύνδεσης

Για λόγους ασφαλείας, κάθε φορά που συνδέεστε στο σύστημα, πρέπει να δημιουργείτε εκ νέου το αναγνωριστικό περιόδου σύνδεσης. Οι πληροφορίες στις μεταβλητές περιόδου λειτουργίας διατηρούνται, αλλάζει μόνο το αναγνωριστικό περιόδου λειτουργίας. Μην ξεχνάτε, οι πληροφορίες συνεδρίας αποθηκεύονται στον διακομιστή web ως κείμενο σε ένα αντίστοιχο αρχείο. Για να δημιουργήσετε ξανά το αναγνωριστικό, καλέστε τη session_regenerate_id() και ανανεώστε την τρέχουσα σελίδα ή ανακατευθύνετε τον χρήστη σε άλλη σελίδα.

Μηχανισμός συνεδρίας


Μείωση της διάρκειας της συνεδρίας

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

$_SESSION["start"] = time(); // timestamp εξουσιοδότησης χρήστη $now = time(); // τρέχουσα ώρα $time_limit = 1000; // μέγιστος επιτρεπόμενος χρόνος αδράνειας χρήστη σε δευτερόλεπτα. if ($now > $_SESSION["start"] + $time_limit) ( echo "Ο χρόνος σας έχει λήξει"; //...... // και διαγράψτε την περίοδο λειτουργίας και το cookie της) other ( $_SESSION["start " ] = time(); ) // εάν παραγγελία, ενημέρωση

Πώς να κάνετε μια συνεδρία αιώνια;

Προκειμένου ο πελάτης να παραμένει πάντα συνδεδεμένος, δεν χρειάζεται να ορίσετε τη διάρκεια ζωής της περιόδου σύνδεσης ως αιώνια. Μια συνεδρία είναι μια συνεδρία: ξεκινά όταν φθάνει ο πελάτης και τελειώνει όταν ο πελάτης αποχωρεί.

Όταν ο πελάτης έρθει ξανά, πρέπει να ξεκινήσετε μια νέα συνεδρία, αλλά να φορτώσετε δεδομένα σχετικά με τον πελάτη σε αυτήν, με βάση ένα cookie μοναδικό για τον πελάτη, το οποίο είναι μόνιμα εγκατεστημένο για αυτόν όταν επιλέγει ένα πλαίσιο ελέγχου, για παράδειγμα, "να με θυμάσαι ".

Εργασία με μια περίοδο λειτουργίας όταν τα cookie είναι απενεργοποιημένα

Εάν η ρύθμιση session.use_trans_sid έχει οριστεί σε 1, τότε όταν τα cookies είναι απενεργοποιημένα, η PHP θα μεταδίδει το PHPSESSID χρησιμοποιώντας τη μέθοδο GET στη γραμμή αιτήματος.

Η περίοδος λειτουργίας των μεταβλητών PHP $_SESSION και κατά συνέπεια η δραστηριότητα των web εφαρμογών εξαρτάται από τη διάρκεια της συνεδρίας. Για παράδειγμα, εάν ένας χρήστης είναι συνδεδεμένος στο σύστημα, ο χρόνος κατά τον οποίο μπορεί να είναι ανενεργός χωρίς να χρειάζεται να εισαγάγει ξανά τα στοιχεία σύνδεσης και τον κωδικό πρόσβασής του εξαρτάται από αυτήν την παράμετρο.

Υπάρχουν διάφοροι τρόποι για να ορίσετε τη διάρκεια ζωής των συνεδριών. Ας προσπαθήσουμε να το καταλάβουμε χρησιμοποιώντας το λειτουργικό σύστημα Linux ως παράδειγμα.

Πώς να μάθετε τη διάρκεια ζωής της συνεδρίας

Πριν από τη ρύθμιση, αξίζει να δούμε την τρέχουσα κατάσταση. Υπάρχουν διάφορες μέθοδοι για να γίνει αυτό:

1. Στον διακομιστή χρησιμοποιώντας την εντολή php

php -i | συνεδρία grep

Λαμβάνουμε μια λίστα παραμέτρων που σχετίζονται με τις συνεδρίες. Ενδιαφερόμαστε για:

  • session.cookie_lifetime => 0 => 0
  • session.gc_maxlifetime => 1440 => 1440

Αυτές οι τιμές είναι η προεπιλεγμένη τιμή. cookie_lifetime => 0μιλά για την επίδραση των cookies μέχρι να κλείσει το πρόγραμμα περιήγησης, εάν ορίσετε αυτήν την παράμετρο σε μια συγκεκριμένη τιμή, η περίοδος λειτουργίας θα διακοπεί όταν η περίοδος λειτουργίας είναι ενεργή, επομένως είναι καλύτερα να την αφήσετε στο μηδέν.

2. Χρησιμοποιώντας τη συνάρτηση php ini_get

$maxlifetime = ini_get("session.gc_maxlifetime");
$cookielifetime = ini_get("session.cookie_lifetime");

Echo $maxlifetime;
echo $cookielifetime;

systemctl επανεκκίνηση του apache2 || systemctl επανεκκίνηση httpd

* σε εκδόσεις Linux χωρίς systemd χρησιμοποιούμε την εντολή επανεκκίνηση της υπηρεσίας apache2ή επανεκκίνηση της υπηρεσίας httpd.

Εάν χρησιμοποιούμε FastCGI (PHP-FPM):

Διαμόρφωση μέσω αρχείου .htaccess

Αυτό το αρχείο επιτρέπει στον webmaster να διαχειρίζεται ορισμένες ρυθμίσεις διακομιστή ιστού. Για να το επεξεργαστείτε χρειάζεστε πρόσβαση στα αρχεία του ιστότοπου. Η μέθοδος δεν θα λειτουργήσει εάν ο χειριστής PHP δεν είναι Apache, αλλά, για παράδειγμα, NGINX + PHP-FPM. Αν και, υπάρχει επίσης ένας τρόπος (περισσότερα για αυτό παρακάτω).

Προσθέτουμε τα ακόλουθα στο αρχείο .htaccess:

php_value session.gc_maxlifetime 86400
php_value session.cookie_lifetime 0

* όπως μπορείτε να δείτε, οι παράμετροι είναι οι ίδιες όπως όταν ρυθμίζονται μέσω του php.ini.

Όπως αναφέρθηκε παραπάνω, η μέθοδος δεν θα λειτουργήσει εάν δεν χρησιμοποιηθεί το Apache. Ωστόσο, η ρύθμιση μπορεί να γίνει στον διακομιστή (και πάλι πρέπει να έχουμε την κατάλληλη πρόσβαση).

Ανοίξτε το αρχείο διαμόρφωσης διακομιστή web, για παράδειγμα, σε php-fpm:

vi /etc/php-fpm.d/www.conf

και επεξεργαστείτε/προσθέστε:

php_value = 86400
php_value = 0

Στη συνέχεια κάνουμε επανεκκίνηση της υπηρεσίας:

systemctl επανεκκίνηση php-fpm || επανεκκίνηση της υπηρεσίας php-fpm

Ρύθμιση παραμέτρου στον κώδικα εφαρμογής

Η μέθοδος μπορεί να είναι χρήσιμη όταν διαφορετικές σελίδες πύλης πρέπει να έχουν διαφορετική διάρκεια ζωής περιόδου σύνδεσης. Για να το κάνετε αυτό, μπορείτε να χρησιμοποιήσετε τις συναρτήσεις PHP ini_set και session_set_cookie_params, για παράδειγμα:

Ini_set("session.gc_maxlifetime", 86400);
ini_set("session.cookie_lifetime", 0);
session_set_cookie_params(0);

Session_start();

Οι συναρτήσεις πρέπει να καλούνται πριν από το άνοιγμα μιας συνεδρίας (session_start).

Ρύθμιση συνεδρίας στην εφαρμογή

Ορισμένες εφαρμογές ενδέχεται να παρακάμπτουν τις ρυθμίσεις. Σε αυτήν την περίπτωση, πρέπει να ορίσετε τη διάρκεια ζωής της περιόδου λειτουργίας στις παραμέτρους του προγράμματος. Κάθε εφαρμογή έχει τις δικές της ρυθμίσεις, τις οποίες πρέπει να καταλάβετε μόνοι σας. Ας δώσουμε ένα παράδειγμα ρύθμισης μιας περιόδου λειτουργίας στο Bitrix CMS.

Ας πάμε στο Ομάδα χρηστών- επιλέξτε μια ομάδα - Ασφάλεια. Βρείτε την παράμετρο "Διάρκεια ζωής συνεδρίας (λεπτά)" και ορίστε την ώρα, για παράδειγμα 1440 (24 ώρες σε λεπτά).

Πώς να ανανεώνετε αυτόματα τις συνεδρίες

Εάν μια περίοδος λειτουργίας εκδοθεί για μια συγκεκριμένη περίοδο και λήξει σε μια συγκεκριμένη χρονική στιγμή, ενδέχεται να διακοπεί η ενεργή περίοδος λειτουργίας του χρήστη. Είναι πολύ πιο βολικό εάν η διάρκεια της συνεδρίας επεκτείνεται αυτόματα εάν ο επισκέπτης ανανεώσει τη σελίδα. Για αυτό, υπάρχει η παράμετρος cookie_lifetime, την οποία σε όλα τα παραπάνω παραδείγματα ορίσαμε σε 0.

Εάν ορίσουμε την τιμή cookie_lifetime σε 86400, τότε η περίοδος λειτουργίας θα τερματιστεί μετά από 24 ώρες. Αυτό δεν είναι πάντα βολικό.

Εάν υπάρχει ανάγκη ελέγχου και διακοπής της συνεδρίας, μπορείτε να χρησιμοποιήσετε τη συνάρτηση PHP session_destroy().

Διαδρομή αποθήκευσης αρχείων συνεδρίας

Η θέση αποθήκευσης για τα αρχεία συνεδρίας καθορίζεται από την παράμετρο session.save_pathεπίσης, έτσι είναι και ο χρόνος της ζωής. Από προεπιλογή, η διαδρομή μπορεί να χρησιμοποιηθεί /var/lib/php/sessions.

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

Εάν είστε ήδη λίγο πολύ καλά γνώστες PHP, τότε ξέρετε ποια είναι η διαφορά μεταξύ καθαρού κουλουράκικαι συνεδρίες. Και αυτό πρέπει να το ξέρετε η διάρκεια της συνεδρίας είναι περιορισμένη. Ωστόσο, αυτό δεν είναι πάντα βολικό. Και σε αυτό το άρθρο θα μιλήσω για το πώς επεκτείνετε τη διάρκεια ζωής της περιόδου λειτουργίας σε PHP.

Σε τι χρησιμεύει; επεκτείνετε τη διάρκεια ζωής της περιόδου λειτουργίας σε PHP? Ο πιο συνηθισμένος λόγος είναι η παράταση της διάρκειας ζωής της εξουσιοδότησης χρήστη, η οποία βασίζεται σε περιόδους σύνδεσης. Συνήθως, από προεπιλογή, η συνεδρία αποθηκεύεται 15 λεπτά. Αντίστοιχα, μέσω 15 λεπτά αδράνειας, ο χρήστης αποσυνδέεται αυτόματα και πρέπει να συνδεθεί ξανά.

Η ευκολότερη επιλογή για την επέκταση της συνεδρίας είναι να αλλάξετε το αρχείο php.ini(μεταβλητός session.gc_maxlifetime), ωστόσο, δύσκολα έχετε τέτοια ευκαιρία (εκτός φυσικά εάν είστε ο ιδιοκτήτης του διακομιστή). Επομένως, η καλύτερη επιλογή θα ήταν να προσθέσετε στο αρχείο .htaccessαυτή η γραμμή:

Php_value session.gc_maxlifetime 3600

Εδώ έχουμε αλλάξει την τιμή της μεταβλητής session.gc_maxlifetimeεπί 3600 δευτερόλεπτα Τώρα η συνεδρία μας θα αποθηκευτεί ακριβώς 1 ώρα. Αν βάλεις 0 , τότε η συνεδρία θα αποθηκευτεί για απεριόριστο χρόνο, κάτι που δεν σας συνιστώ ανεπιφύλακτα να το κάνετε, εκτός ίσως μόνο σε έναν τοπικό διακομιστή. Επειδή είναι βολικό κατά τη δημιουργία και τον εντοπισμό σφαλμάτων ενός ιστότοπου.

Αλλά μην ξεχνάτε ότι όλα τα αρχεία συνεδρίας αποθηκεύονται στον διακομιστή. Ως αποτέλεσμα, μπορεί να συσσωρευτεί ένας τέτοιος αριθμός από αυτούς που απλώς δεν υπάρχει αρκετός χώρος (φυσικά, υπόκειται σε υψηλή προσέλευση). Επιπλέον, μην ξεχνάτε: όσο μικρότερη είναι η διάρκεια ζωής της συνεδρίας, τόσο μεγαλύτερη είναι η ασφάλεια.

Ακόμη ένα πράγμα. Ορισμένοι πάροχοι φιλοξενίας δεν σας επιτρέπουν να διαχειριστείτε το αρχείο .htaccess. Αν ναι, τότε αλλάξτε τον οικοδεσπότη, γιατί οποιοσδήποτε πάροχος φιλοξενίας που σέβεται τον εαυτό του σας επιτρέπει να αλλάξετε .htaccess.

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

19/01/17 7,5Κ

Χρησιμοποιώντας μια περίοδο λειτουργίας PHP, ο διακομιστής σας αναγνωρίζει και σας επιτρέπει να εκτελέσετε τις απαραίτητες λειτουργίες: αλλαγή πληροφοριών σε διάφορες ιστοσελίδες, προσθήκη νέων πληροφοριών κ.λπ. Αφού ολοκληρώσετε την εργασία στον ιστότοπο, διαγράφετε την τρέχουσα περίοδο λειτουργίας κάνοντας κλικ στο κουμπί «Αποσύνδεση»:

Τι είναι μια συνεδρία PHP;

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

Αυτές οι πληροφορίες, αποθηκευμένες σε όλη τη διάρκεια της συνεδρίας, είναι διαθέσιμες για όλες τις ιστοσελίδες του πόρου. Στον διακομιστή, η θέση του προσωρινού αρχείου καθορίζεται από την παράμετρο session.save_path στο αρχείο διαμόρφωσης php.ini.

Κατά τη δημιουργία μιας περιόδου λειτουργίας PHP, εκτελούνται τα ακόλουθα τρία βήματα:

  • Όταν δημιουργείται μια περίοδος λειτουργίας, η PHP δημιουργεί ένα μοναδικό αναγνωριστικό, το οποίο είναι μια τυχαία συμβολοσειρά 32 δεκαεξαδικών αριθμών. Το αναγνωριστικό διάρκειας περιόδου λειτουργίας PHP μοιάζει κάπως έτσι: 9c8foj87c3jj973actop1re472e8774;
  • Ο διακομιστής στέλνει ένα cookie που ονομάζεται PHPSESSID στον υπολογιστή του χρήστη για να αποθηκεύσει μια μοναδική συμβολοσειρά αναγνωριστικού περιόδου σύνδεσης.
  • Ο διακομιστής δημιουργεί ένα αρχείο στον καθορισμένο προσωρινό κατάλογο που περιέχει το όνομα του μοναδικού αναγνωριστικού περιόδου λειτουργίας με το πρόθεμα συνεδρία_ζ. sess_9c8foj87c3jj973actop1re472e8774.

Αυτές οι ρυθμίσεις βοηθούν το σενάριο PHP να ανακτήσει τιμές μεταβλητής περιόδου λειτουργίας από το αρχείο. Στην πλευρά του πελάτη, το PHPSESSID περιέχει το αναγνωριστικό περιόδου λειτουργίας. Επιβεβαιώνει το όνομα του αρχείου προς αναζήτηση σε έναν συγκεκριμένο κατάλογο στην πλευρά του διακομιστή, από τον οποίο μπορούν να εξαχθούν μεταβλητές περιόδου λειτουργίας και να χρησιμοποιηθούν για επαλήθευση.

Ο χρήστης μπορεί να τερματίσει τη συνεδρία κάνοντας κλικ στο κουμπί αποσύνδεσης, το οποίο καλεί τη συνάρτηση session_destroy(). Όταν ο χρήστης κλείνει το πρόγραμμα περιήγησης, η περίοδος λειτουργίας PHP κλείνει αυτόματα. Διαφορετικά, ο διακομιστής θα τερματίσει τη συνεδρία μετά την καθορισμένη χρονική περίοδο.

Σύνταξη συνεδρίας σε PHP

Όταν η PHP εξουσιοδοτεί μέσω μιας συνεδρίας, δημιουργείται χρησιμοποιώντας τη συνάρτηση session_start() και διαγράφεται χρησιμοποιώντας τη συνάρτηση session_destroy(). Μια καθολική μεταβλητή PHP γνωστή ως $_SESSION χρησιμοποιείται για να ορίσει τις τιμές των μεταβλητών περιόδου λειτουργίας. Μπορείτε να επαναφέρετε όλες τις τιμές που έχουν οριστεί για τις μεταβλητές περιόδου λειτουργίας χρησιμοποιώντας τη συνάρτηση session_unset().

Λειτουργίες συνεδρίας

Θα εξετάσουμε τις ακόλουθες λειτουργίες χρησιμοποιώντας μια περίοδο λειτουργίας PHP, καθώς και παραδείγματα αυτών.

  • Ξεκινώντας μια περίοδο λειτουργίας PHP και ορίζοντας τις μεταβλητές περιόδου λειτουργίας της:ξεκινά μια νέα συνεδρία PHP χρησιμοποιώντας τη συνάρτηση session_start(). Μόλις δημιουργηθεί μια περίοδος σύνδεσης, οι μεταβλητές της περιόδου λειτουργίας μπορούν να οριστούν χρησιμοποιώντας $_SESSION. Έχουμε ορίσει τις τιμές για τις μεταβλητές " ταυτότητα χρήστη” — “php_user" Και " Κωδικός πρόσβασης” — “σεμινάρια”:

Συνεδρίες PHP - δημιουργία Η περίοδος λειτουργίας PHP έχει ξεκινήσει και οι μεταβλητές περιόδου λειτουργίας έχουν οριστεί!"; ?>

Αποτέλεσμα: Η εκτέλεση του παραπάνω κώδικα PHP στον διακομιστή θα παράγει το ακόλουθο μήνυμα:

  • Λήψη τιμών μεταβλητής περιόδου λειτουργίας PHP: Είναι δυνατό να λάβουμε τις τιμές των μεταβλητών που ορίσαμε κατά την τελευταία περίοδο σύνδεσης στην PHP. Όταν ανοίγουμε μια συνεδρία PHP στην αρχή κάθε σελίδας ( session_start()), πρέπει να καθοριστεί ο παρακάτω κωδικός. Ανακτούμε και εμφανίζουμε αυτές τις τιμές χρησιμοποιώντας την καθολική μεταβλητή $_SESSION:

Συνεδρία PHP - λήψη τιμών
"; echo "Password - " . $_SESSION["password"] . "."; ?>

Αποτέλεσμα: Όταν εκτελούμε τον παραπάνω κώδικα PHP στον διακομιστή, θα λάβουμε ως αποτέλεσμα το ακόλουθο μήνυμα. Εμφανίζονται οι τιμές των μεταβλητών συνεδρίας που ορίσαμε νωρίτερα, μετά τη δημιουργία της συνεδρίας PHP.

  • Ενημέρωση τιμών μεταβλητής περιόδου λειτουργίας PHP: Κατά τη διάρκεια μιας συνεδρίας, μπορείτε να ενημερώσετε τις τιμές των μεταβλητών της. Πρώτα πρέπει να ανοίξουμε μια συνεδρία PHP στην αρχή κάθε σελίδας ( session_start()). Στον παρακάτω κώδικα, ενημερώνουμε τις τιμές των μεταβλητών " ταυτότητα χρήστη” — “new_php_user" Και " Κωδικός πρόσβασης” — “εκπαίδευση”.

Μπορείτε να εκτυπώσετε μια σειρά από μεταβλητές περιόδου λειτουργίας και τις τιμές τους χρησιμοποιώντας τη συνάρτηση print_r($ _SESSION), όπως φαίνεται παρακάτω:

Συνεδρία PHP - αλλαγή τιμών
"; print_r($_SESSION); ?>

Αποτέλεσμα: Όταν εκτελούμε τον παραπάνω κώδικα PHP στον διακομιστή, θα λάβουμε το ακόλουθο μήνυμα. Θα περιέχει μια σειρά από μεταβλητές περιόδου λειτουργίας με τις νέες τιμές τους.



Έχετε ερωτήσεις;

Αναφέρετε ένα τυπογραφικό λάθος

Κείμενο που θα σταλεί στους συντάκτες μας: