PHP Superglobal Μεταβλητές και Register_Globals
Η PHP έχει ένα ειδικό είδος μεταβλητής που ονομάζεται superglobal. Ο λόγος που αυτές οι μεταβλητές είναι ξεχωριστές είναι επειδή είναι αυτομάτως διαθέσιμες σε οποιοδήποτε πρόγραμμα PHP χωρίς ο προγραμματιστής να τις δημιουργήσει ή να τις καθορίσει στο πρόγραμμα του. Μπορείτε να τους θεωρήσετε ως "ενσωματωμένες" μεταβλητές.

Ο τρόπος με τον οποίο θα έχετε πρόσβαση σε αυτές τις μεταβλητές διαφέρει ανάλογα με το αν το register_globals είναι ενεργοποιημένο ή απενεργοποιημένο στον διακομιστή σας. Πριν από την έκδοση 4.2 της PHP, το register_globals ενεργοποιήθηκε από προεπιλογή. Ωστόσο, για λόγους ασφαλείας, αυτή η ρύθμιση είναι τώρα απενεργοποιημένη από προεπιλογή (έκδοση 4.2+). Φυσικά, εναπόκειται στους ανθρώπους που τρέχουν το διακομιστή σας να αποφασίσουν εάν θα αντικαταστήσουν την προεπιλεγμένη ρύθμιση και θα ενεργοποιήσουν το register_globals. Ο ευκολότερος τρόπος για να ελέγξετε τον δικό σας διακομιστή είναι να χρησιμοποιήσετε το phpinfo (). Θα έχετε πιθανώς έναν σύνδεσμο προς αυτήν την ιστοσελίδα στη διοικητική περιοχή του ιστότοπού σας. Σε αυτή την ιστοσελίδα θα βρείτε την ενότητα Configuration PHP Core που περιέχει τις πληροφορίες αυτές.

Όπως αναφέρθηκε παραπάνω, θα έχετε πρόσβαση στους υπεργολάβους διαφορετικά ανάλογα με τη ρύθμιση του διακομιστή σας. Για τη νέα εγκατάσταση του διακομιστή, οι superglobals έλαβαν νέα ονόματα. Εάν ο διακομιστής σας εξακολουθεί να έχει την παλιά ρύθμιση, θα ήταν καλύτερα να αρχίσετε να χρησιμοποιείτε τα νέα ονόματα ούτως ή άλλως. Εάν χρησιμοποιείτε αυτά τα νέα ονόματα, μπορείτε να είστε βέβαιοι ότι τα προγράμματά σας θα λειτουργούν και κάτω από τις δύο παραμέτρους διακομιστή. Ωστόσο, αυτό δεν ισχύει για τα παλιά ονόματα. Θα λειτουργούν μόνο για την παλιά ρύθμιση παραμέτρων του διακομιστή. Ο παρακάτω πίνακας δείχνει τα παλαιά και νέα ονόματα και μια περιγραφή των υπεργολάβων. Παρατηρήστε ότι τα ονόματα αυτών των υπερπληθυσμών είναι με όλα τα κεφαλαία γράμματα.

ΝέοςΠαλαιόςΠεριγραφή
$ _GET $ HTTP_GET_VARS Αυτό το superglobal περιέχει τις μεταβλητές που αποστέλλονται στο πρόγραμμα από τη μέθοδο get, όπως μια σειρά συμβολοσειρών.
$ _POST $ HTTP_POST_VARS Αυτό το superglobal περιέχει τις μεταβλητές που αποστέλλονται στο πρόγραμμα με τη μέθοδο post.
$ _COOKIE $ HTTP_COOKIE_VARS Αυτό το superglobal περιέχει τις μεταβλητές που είναι διαθέσιμες στο πρόγραμμα από ένα cookie.
$ _SESSION $ HTTP_SESSION_VARS Αυτό το superglobal περιέχει τις μεταβλητές που έχουν καταχωρηθεί από το πρόγραμμα μέσω μιας περιόδου λειτουργίας.
$ _FILES $ HTTP_POST_FILES Αυτό το superglobal περιέχει τις μεταβλητές που είναι διαθέσιμες από μια μεταφόρτωση αρχείου.
$ _ENV $ _HTTP_ENV_VARS Αυτός ο superglobal περιέχει τις μεταβλητές που είναι διαθέσιμες από το περιβάλλον του διακομιστή.
$ _REQUEST -- Αυτό το superglobal περιέχει τις μεταβλητές που αποστέλλονται σε ένα πρόγραμμα από οποιονδήποτε τύπο εισόδου χρήστη. Αυτός είναι ο πιο γενικός ή καθολικός τύπος υπεργολάβου.
$ _SERVER -- Αυτό το superglobal περιέχει πληροφορίες σχετικά με το διακομιστή, όπως διαδρομές αρχείων.





Οδηγίες Βίντεο: PHP for Web Development (Ενδέχεται 2024).