Φόρμα εγγραφής PHP χρησιμοποιώντας μεθόδους GET, POST με Παράδειγμα
⚡ Έξυπνη Σύνοψη
Η Διαχείριση Φορμών σε PHP καταγράφει την είσοδο δεδομένων χρήστη από φόρμες HTML και την επεξεργάζεται στον διακομιστή μέσω των υπερ-σφαιρικών μεταβλητών $_POST και $_GET. Αυτή η αναλυτική παρουσίαση δημιουργεί μια φόρμα εγγραφής, εξηγεί τις μεθόδους POST και GET, τις συγκρίνει και δείχνει πώς να επεξεργάζεστε πεδία, πλαίσια ελέγχου και δεδομένα αναζήτησης.

Τι είναι η Μορφή;
Όταν συνδέεστε σε έναν ιστότοπο ή στο γραμματοκιβώτιό σας, αλληλεπιδράτε με μια φόρμα.
Οι φόρμες χρησιμοποιούνται για τη λήψη πληροφοριών από τον χρήστη και την υποβολή τους στον διακομιστή ιστού για επεξεργασία.
Το παρακάτω διάγραμμα απεικονίζει τη διαδικασία χειρισμού φόρμας.
Μια φόρμα είναι μια ετικέτα HTML που περιέχει στοιχεία γραφικής διεπαφής χρήστη, όπως πλαίσια εισαγωγής, πλαίσια ελέγχου, κουμπιά επιλογής και άλλα.
Η μορφή ορίζεται χρησιμοποιώντας το … Οι ετικέτες και τα στοιχεία GUI ορίζονται χρησιμοποιώντας στοιχεία φόρμας όπως η είσοδος.
Πότε και γιατί χρησιμοποιούμε φόρμες;
- Οι φόρμες είναι χρήσιμες κατά την ανάπτυξηping ευέλικτες και δυναμικές εφαρμογές που δέχονται εντολές χρήστη.
- Οι φόρμες μπορούν να χρησιμοποιηθούν για την επεξεργασία ήδη υπαρχόντων δεδομένων από τη βάση δεδομένων.
Δημιουργήστε μια φόρμα
Θα χρησιμοποιήσουμε ετικέτες HTML για να δημιουργήσουμε μια φόρμα. Παρακάτω είναι η ελάχιστη λίστα με τα πράγματα που χρειάζεστε για να δημιουργήσετε μια φόρμα.
- Άνοιγμα και κλείσιμο ετικετών φόρμας …
- Τύπος υποβολής φόρμας POST ή GET
- Υποβολή URL που θα επεξεργάζεται τα υποβληθέντα δεδομένα
- Πεδία εισαγωγής όπως πλαίσια εισαγωγής, περιοχές κειμένου, κουμπιά, πλαίσια ελέγχου και παρόμοια.
Ο παρακάτω κώδικας δημιουργεί μια απλή φόρμα εγγραφής.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h2>Registration Form</h2> <form action="registration_form.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> </body> </html>
Η προβολή του παραπάνω κώδικα σε ένα πρόγραμμα περιήγησης ιστού εμφανίζει την ακόλουθη φόρμα.
ΕΔΩ,
- … είναι οι ετικέτες της φόρμας ανοίγματος και κλεισίματος
- Η μέθοδος action=”registration_form.php” καθορίζει τον προορισμό URL και τον τύπο υποβολής.
- Όνομα/Επώνυμο: είναι ετικέτες για τα πλαίσια εισαγωγής
- είναι ετικέτες κουτιών εισόδου
- είναι η νέα ετικέτα γραμμής
- είναι μια κρυφή τιμή που χρησιμοποιείται για να ελέγξει εάν η φόρμα έχει υποβληθεί ή όχι
- είναι το κουμπί που, όταν πατηθεί, υποβάλλει τη φόρμα στον διακομιστή για επεξεργασία
Υποβολή των δεδομένων της φόρμας στον διακομιστή
Το χαρακτηριστικό action της φόρμας καθορίζει την υποβολή URL που επεξεργάζεται τα δεδομένα. Το χαρακτηριστικό method καθορίζει τον τύπο υποβολής.
Μέθοδος PHP POST
- Αυτή είναι η ενσωματωμένη υπερ-σφαιρική μεταβλητή πίνακα PHP που χρησιμοποιείται για τη λήψη τιμών που υποβάλλονται μέσω της μεθόδου HTTP POST.
- Η μεταβλητή του πίνακα είναι προσβάσιμη από οποιοδήποτε σενάριο του προγράμματος. έχει παγκόσμια εμβέλεια.
- Αυτή η μέθοδος είναι ιδανική όταν δεν θέλετε να εμφανίσετε τις τιμές καταχώρησης φόρμας στο URL.
- Ένα καλό παράδειγμα χρήσης της μεθόδου POST είναι κατά την υποβολή στοιχείων σύνδεσης στον διακομιστή.
Έχει την εξής σύνταξη.
<?php
$_POST['variable_name'];
?>
ΕΔΩ,
- "$_POST[…]" είναι το Πίνακας PHP
- Το "'variable_name'" είναι το όνομα του πεδίου της φόρμας.
Μέθοδος PHP GET
- Αυτή είναι η ενσωματωμένη υπερ-σφαιρική μεταβλητή πίνακα PHP που χρησιμοποιείται για τη λήψη τιμών που υποβάλλονται μέσω της μεθόδου HTTP GET.
- Η μεταβλητή του πίνακα είναι προσβάσιμη από οποιοδήποτε σενάριο του προγράμματος. έχει παγκόσμια εμβέλεια.
- Αυτή η μέθοδος εμφανίζει τις τιμές της φόρμας στο URL.
- Είναι ιδανικό για φόρμες μηχανών αναζήτησης, καθώς επιτρέπει στους χρήστες να προσθέτουν σελιδοδείκτες στα αποτελέσματα.
Έχει την εξής σύνταξη.
<?php
$_GET['variable_name'];
?>
ΕΔΩ,
- "$_GET[…]" είναι ο πίνακας PHP
- Το "'όνομα_μεταβλητής'" είναι το URL όνομα μεταβλητής.
Μέθοδοι GET vs POST
| ΜΕΤΑ | ΠΑΡΤΕ |
|---|---|
| Οι τιμές δεν είναι ορατές στο URL | Τιμές ορατές στο URL |
| Δεν έχει περιορισμό στο μήκος των τιμών, καθώς υποβάλλονται μέσω του σώματος του αιτήματος HTTP. | Έχει περιορισμό στο μήκος των τιμών, συνήθως 255 χαρακτήρες. Αυτό συμβαίνει επειδή οι τιμές εμφανίζονται στο URLΣημειώστε ότι το ανώτατο όριο χαρακτήρων εξαρτάται από το πρόγραμμα περιήγησης. |
| Έχει χαμηλότερη απόδοση σε σύγκριση με τη μέθοδο GET λόγω του χρόνου που αφιερώνεται στην ενθυλάκωση των τιμών POST στο σώμα HTTP | Έχει υψηλότερη απόδοση σε σύγκριση με τη μέθοδο POST λόγω της απλής φύσης της προσάρτησης των τιμών στο URL. |
| Υποστηρίζει πολλούς διαφορετικούς τύπους δεδομένων, όπως συμβολοσειρές, αριθμητικά, δυαδικά και άλλα. | Υποστηρίζει μόνο τύπους δεδομένων συμβολοσειράς επειδή οι τιμές εμφανίζονται στο URL |
| Δεν είναι δυνατή η προσθήκη σελιδοδεικτών στα αποτελέσματα | Τα αποτελέσματα μπορούν να προστεθούν σε σελιδοδείκτες λόγω της ορατότητας των τιμών στο URL |
Το παρακάτω διάγραμμα δείχνει τη διαφορά μεταξύ GET και POST.
Επεξεργασία των δεδομένων της φόρμας εγγραφής
Η φόρμα εγγραφής υποβάλλει δεδομένα στον εαυτό της, όπως ορίζεται στο χαρακτηριστικό action της φόρμας.
Όταν υποβληθεί μια φόρμα, οι τιμές συμπληρώνονται στον υπερκαθολικό πίνακα $_POST.
Θα χρησιμοποιήσουμε τη συνάρτηση isset της PHP για να ελέγξουμε εάν οι τιμές της φόρμας έχουν συμπληρωθεί στον πίνακα $_POST και να επεξεργαστούμε τα δεδομένα.
Θα τροποποιήσουμε τη φόρμα εγγραφής ώστε να συμπεριλάβει τον κώδικα PHP που επεξεργάζεται τα δεδομένα. Παρακάτω είναι ο τροποποιημένος κώδικας.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_POST['form_submitted'])): ?> // this code is executed when the form is submitted <h2>Thank You <?php echo $_POST['firstname']; ?> </h2> <p>You have been registered as <?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?> </p> <p>Go <a href="/registration_form.php">back</a> to the form</p> <?php else: ?> <h2>Registration Form</h2> <form action="registration_form.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
ΕΔΩ,
- Ελέγχει αν το κρυφό πεδίο form_submitted έχει συμπληρωθεί στον πίνακα $_POST[] και εμφανίζει ένα μήνυμα ευχαριστίας και ονόματος. Εάν το πεδίο form_submitted δεν έχει συμπληρωθεί στον πίνακα $_POST[], εμφανίζεται η φόρμα.
Περισσότερα παραδείγματα
Απλή μηχανή αναζήτησης
Θα σχεδιάσουμε μια απλή μηχανή αναζήτησης που χρησιμοποιεί τη μέθοδο PHP GET ως τύπο υποβολής φόρμας.
Για λόγους απλότητας, θα χρησιμοποιήσουμε α Δήλωση if σε PHP για να προσδιορίσετε την έξοδο.
Θα χρησιμοποιήσουμε τον ίδιο κώδικα HTML για την παραπάνω φόρμα εγγραφής και θα κάνουμε ελάχιστες τροποποιήσεις σε αυτήν.
<html> <head> <title>Simple Search Engine</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_GET['form_submitted'])): ?> <h2>Search Results For <?php echo $_GET['search_term']; ?> </h2> <?php if ($_GET['search_term'] == "GET"): ?> <p>The GET method displays its values in the URL</p> <?php else: ?> <p>Sorry, no matches found for your search term</p> <?php endif; ?> <p>Go <a href="/search_engine.php">back</a> to the form</p> <?php else: ?> <h2>Simple Search Engine - Type in GET </h2> <form action="search_engine.php" method="GET"> Search Term: <input type="text" name="search_term"> <br> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
Δείτε την παραπάνω σελίδα σε ένα πρόγραμμα περιήγησης ιστού.
Θα εμφανιστεί η ακόλουθη φόρμα.
Πληκτρολογήστε GET με κεφαλαία γράμματα και, στη συνέχεια, κάντε κλικ στο κουμπί υποβολής.
Θα παρουσιαστούν τα ακόλουθα.
Το παρακάτω διάγραμμα δείχνει το URL για τα παραπάνω αποτελέσματα.
Σημειώστε το URL έχει εμφανίσει την τιμή των search_term και form_submitted. Προσπαθήστε να εισαγάγετε κάτι διαφορετικό από το GET, στη συνέχεια κάντε κλικ στο κουμπί υποβολής και δείτε τα αποτελέσματα που θα λάβετε.
Εργασία με πλαίσια ελέγχου, κουμπιά επιλογής
Εάν ο χρήστης δεν επιλέξει ένα πλαίσιο ελέγχου ή ένα κουμπί επιλογής, δεν υποβάλλεται καμία τιμή. Εάν ο χρήστης επιλέξει ένα πλαίσιο ελέγχου ή ένα κουμπί επιλογής, υποβάλλεται η τιμή ένα (1) ή true.
Θα τροποποιήσουμε τον κωδικό της φόρμας εγγραφής και θα συμπεριλάβουμε ένα κουμπί ελέγχου που επιτρέπει στον χρήστη να συμφωνήσει με τους όρους παροχής υπηρεσιών.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_POST['form_submitted'])): ?> <?php if (!isset($_POST['agree'])): ?> <p>You have not accepted our terms of service</p> <?php else: ?> <h2>Thank You <?php echo $_POST['firstname']; ?></h2> <p>You have been registered as <?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?> </p> <p> Go <a href="/registration_form2.php">back</a> to the form</p> <?php endif; ?> <?php else: ?> <h2>Registration Form</h2> <form action="registration_form2.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <br> Agree to Terms of Service: <input type="checkbox" name="agree"> <br> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
Δείτε την παραπάνω φόρμα σε ένα πρόγραμμα περιήγησης.
Συμπληρώστε το όνομα και το επώνυμο.
Σημειώστε ότι το πλαίσιο ελέγχου Συμφωνώ με τους Όρους Παροχής Υπηρεσιών δεν έχει επιλεγεί.
Κάντε κλικ στο κουμπί αποστολής.
Θα λάβετε τα ακόλουθα αποτελέσματα.
Κάντε κλικ στο πίσω μέρος του συνδέσμου της φόρμας και, στη συνέχεια, επιλέξτε το πλαίσιο ελέγχου.
Κάντε κλικ στο κουμπί αποστολής.
Θα λάβετε τα ακόλουθα αποτελέσματα.










