⊗ppPmFmChcN 307 of 447 menu

Αποχρώσεις χρήσης πλαισίων ελέγχου σε PHP

Ας υποθέσουμε ότι στη φόρμα μας υπάρχει μόνο ένα πλαίσιο ελέγχου:

<form action="" method="GET"> <input type="checkbox" name="flag"> <input type="submit"> </form>

Ας υποθέσουμε ότι ο κώδικας επεξεργασίας της φόρμας μας μοιάζει με αυτόν:

<?php if (!empty($_GET)) { // εάν η φόρμα έχει σταλεί if (isset($_GET['flag'])) { // εάν το πλαίσιο ελέγχου είναι επιλεγμένο echo 'επιλεγμένο'; } else { echo 'δεν είναι επιλεγμένο'; } } ?>

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

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

<form action="" method="GET"> <input type="hidden" name="flag" value="0"> <input type="checkbox" name="flag" value="1"> <input type="submit"> </form>

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

Επομένως, τώρα το πλαίσιο ελέγχου μας θα στέλνει στον διακομιστή είτε μηδέν, είτε ένα:

<?php var_dump($_GET['flag']); // '0' ή '1' ?>

Ας το χρησιμοποιήσουμε στον έλεγχο μας:

<?php if (!empty($_GET)) { if ($_GET['flag'] === '1') { echo 'επιλεγμένο'; } else { echo 'δεν είναι επιλεγμένο'; } } ?>

Με τη βοήθεια πλαισίου ελέγχου ρωτήστε τον χρήστη αν είναι ήδη 18 ετών ή όχι. Εάν ναι, επιτρέψτε του την πρόσβαση στον ιστότοπο, αλλά αν όχι - μην του επιτρέψετε.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη