Φόρμα εγγραφής PHP χρησιμοποιώντας μεθόδους GET, POST με Παράδειγμα

Τι είναι η Μορφή;

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

Οι φόρμες χρησιμοποιούνται για τη λήψη πληροφοριών από τον χρήστη και την υποβολή τους στον διακομιστή ιστού για επεξεργασία.

Το παρακάτω διάγραμμα απεικονίζει τη διαδικασία χειρισμού φόρμας.

Φόρμα PHP

Μια φόρμα είναι μια ετικέτα HTML που περιέχει στοιχεία γραφικής διεπαφής χρήστη, όπως πλαίσιο εισαγωγής, κουμπιά επιλογής πλαισίων ελέγχου κ.λπ.

Η φόρμα ορίζεται χρησιμοποιώντας το … Οι ετικέτες και τα στοιχεία GUI ορίζονται χρησιμοποιώντας στοιχεία φόρμας όπως η εισαγωγή.

Πότε και γιατί χρησιμοποιούμε φόρμες;

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

Δημιουργήστε μια φόρμα

Θα χρησιμοποιήσουμε ετικέτες 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” method=”POST”> καθορίζει τη διεύθυνση URL προορισμού και τον τύπο υποβολής.
  • Όνομα/Επώνυμο: είναι ετικέτες για τα πλαίσια εισαγωγής
  • είναι ετικέτες κουτιών εισόδου
  • είναι η νέα ετικέτα γραμμής
  • είναι μια κρυφή τιμή που χρησιμοποιείται για να ελέγξει εάν η φόρμα έχει υποβληθεί ή όχι
  • είναι το κουμπί που όταν πατηθεί υποβάλλει τη φόρμα στον διακομιστή για επεξεργασία

Υποβολή των δεδομένων της φόρμας στον διακομιστή

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

Μέθοδος PHP POST

  • Αυτή είναι η ενσωματωμένη μεταβλητή σούπερ καθολικού πίνακα PHP που χρησιμοποιείται για τη λήψη τιμών που υποβάλλονται μέσω της μεθόδου HTTP POST.
  • Η μεταβλητή του πίνακα είναι προσβάσιμη από οποιοδήποτε σενάριο του προγράμματος. έχει παγκόσμια εμβέλεια.
  • Αυτή η μέθοδος είναι ιδανική όταν δεν θέλετε να εμφανίσετε τις τιμές ανάρτησης της φόρμας στη διεύθυνση URL.
  • Ένα καλό παράδειγμα χρήσης της μεθόδου ανάρτησης είναι κατά την υποβολή στοιχείων σύνδεσης στον διακομιστή.

Έχει την εξής σύνταξη.

<?php
 $_POST['variable_name'];
?>

ΕΔΩ,

  • "$_POST[…]" είναι το Πίνακας PHP
  • Το "'variable_name'" είναι το όνομα της μεταβλητής διεύθυνσης URL.

Μέθοδος PHP GET

  • Αυτή είναι η ενσωματωμένη μεταβλητή σούπερ καθολικού πίνακα PHP που χρησιμοποιείται για τη λήψη τιμών που υποβάλλονται μέσω της μεθόδου HTTP GET.
  • Η μεταβλητή του πίνακα είναι προσβάσιμη από οποιοδήποτε σενάριο του προγράμματος. έχει παγκόσμια εμβέλεια.
  • Αυτή η μέθοδος εμφανίζει τις τιμές της φόρμας στη διεύθυνση URL.
  • Είναι ιδανικό για φόρμες μηχανών αναζήτησης, καθώς επιτρέπει στους χρήστες να επισημάνουν τα αποτελέσματα.

Έχει την εξής σύνταξη.

<?php
$_GET['variable_name'];
?>

ΕΔΩ,

  • "$_GET[…]" είναι ο πίνακας PHP
  • Το "'variable_name'" είναι το όνομα της μεταβλητής διεύθυνσης URL.

Μέθοδοι GET vs POST

ΜΕΤΑ ΠΑΡΤΕ
Οι τιμές δεν είναι ορατές στη διεύθυνση URL Τιμές ορατές στη διεύθυνση URL
Δεν έχει περιορισμό στο μήκος των τιμών αφού υποβάλλονται μέσω του σώματος του HTTP Έχει περιορισμό στο μήκος των τιμών συνήθως 255 χαρακτήρες. Αυτό συμβαίνει επειδή οι τιμές εμφανίζονται στη διεύθυνση URL. Σημειώστε ότι το ανώτερο όριο των χαρακτήρων εξαρτάται από το πρόγραμμα περιήγησης.
Έχει χαμηλότερη απόδοση σε σύγκριση με τη μέθοδο Php_GET λόγω του χρόνου που δαπανάται για ενθυλάκωση των τιμών Php_POST στο σώμα HTTP Έχει υψηλή απόδοση σε σύγκριση με τη μέθοδο POST λόγω της απλής φύσης της προσάρτησης των τιμών στη διεύθυνση URL.
Υποστηρίζει πολλούς διαφορετικούς τύπους δεδομένων όπως συμβολοσειρά, αριθμητικό, δυαδικό κ.λπ. Υποστηρίζει μόνο τύπους δεδομένων συμβολοσειράς επειδή οι τιμές εμφανίζονται στη διεύθυνση URL
Δεν είναι δυνατή η επισήμανση των αποτελεσμάτων Τα αποτελέσματα μπορούν να επισημανθούν λόγω της ορατότητας των τιμών στη διεύθυνση URL

Το παρακάτω διάγραμμα δείχνει τη διαφορά μεταξύ λήψης και ανάρτησης

Μέθοδοι GET vs POST

Μέθοδοι GET vs 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="/el/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_fobmitted δεν έχει συμπληρωθεί στον πίνακα $_POST[], εμφανίζεται η φόρμα.

Περισσότερα παραδείγματα

Απλή μηχανή αναζήτησης

Θα σχεδιάσουμε μια απλή μηχανή αναζήτησης που χρησιμοποιεί τη μέθοδο PHP_GET ως τύπο υποβολής φόρμας.

Για λόγους απλότητας, θα χρησιμοποιήσουμε α Δήλωση PHP If για να προσδιορίσετε την έξοδο.

Θα χρησιμοποιήσουμε τον ίδιο κώδικα 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="/el/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 εμφανίζει την τιμή του όρου αναζήτησης και της μορφής_υποβλήθηκε. Προσπαθήστε να εισαγάγετε οτιδήποτε διαφορετικό από το 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="/el/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>

Δείτε την παραπάνω φόρμα σε ένα πρόγραμμα περιήγησης

Εργασία με πλαίσια ελέγχου, κουμπιά επιλογής

Συμπληρώστε το όνομα και το επίθετο

Σημειώστε ότι το πλαίσιο ελέγχου Συμφωνώ με τους Όρους Παροχής Υπηρεσιών δεν έχει επιλεγεί.

Κάντε κλικ στο κουμπί υποβολής

Θα λάβετε τα ακόλουθα αποτελέσματα

Εργασία με πλαίσια ελέγχου, κουμπιά επιλογής

Κάντε κλικ στο πίσω στο σύνδεσμο φόρμας και, στη συνέχεια, επιλέξτε το πλαίσιο ελέγχου

Εργασία με πλαίσια ελέγχου, κουμπιά επιλογής

Κάντε κλικ στο κουμπί υποβολής

Θα λάβετε τα ακόλουθα αποτελέσματα

Εργασία με πλαίσια ελέγχου, κουμπιά επιλογής

Περίληψη

  • Οι φόρμες χρησιμοποιούνται για τη λήψη δεδομένων από τους χρήστες
  • Οι φόρμες δημιουργούνται χρησιμοποιώντας ετικέτες HTML
  • Οι φόρμες μπορούν να υποβληθούν στον διακομιστή για επεξεργασία χρησιμοποιώντας τη μέθοδο POST ή GET
  • Οι τιμές φόρμας που υποβάλλονται μέσω της μεθόδου POST ενσωματώνονται στο σώμα HTTP.
  • Οι τιμές φόρμας που υποβάλλονται μέσω της μεθόδου GET επισυνάπτονται και εμφανίζονται στη διεύθυνση URL.