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

⚡ Έξυπνη Σύνοψη

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

  • 📝 Τι κάνουν οι φόρμες: Μια φόρμα HTML συλλέγει δεδομένα εισόδου χρήστη μέσω πεδίων όπως πλαίσια κειμένου, πλαίσια ελέγχου και κουμπιά και, στη συνέχεια, τα υποβάλλει σε ένα σενάριο διακομιστή.
  • 📬 Μέθοδος POST: Το $_POST στέλνει τιμές στο σώμα HTTP, διατηρώνταςping τους έξω από το URL, το οποίο ταιριάζει σε συνδέσεις και ευαίσθητα δεδομένα.
  • 🔗 Μέθοδος GET: Η $_GET προσθέτει τιμές στο URL, ώστε τα αποτελέσματα να μπορούν να προστεθούν σελιδοδείκτες, κάτι που είναι ιδανικό για φόρμες αναζήτησης.
  • POST vs GET: Το POST δεν έχει πρακτικό όριο μήκους και υποστηρίζει πολλούς τύπους δεδομένων. Το GET είναι μικρότερο, μόνο συμβολοσειρά και ορατό.
  • Επεξεργασία εισόδου: Η συνάρτηση isset() ελέγχει εάν ένα πεδίο υποβλήθηκε πριν το σενάριο διαβάσει και χρησιμοποιεί την τιμή του.
  • ☑️ Πλαίσια ελέγχου: Ένα πλαίσιο ελέγχου στέλνει μια τιμή μόνο όταν είναι επιλεγμένο, επομένως η συνάρτηση isset() επιβεβαιώνει εάν ο χρήστης συμφώνησε ή επέλεξε την επιλογή.
  • 🤖 AI Assist: Τα εργαλεία τεχνητής νοημοσύνης μπορούν να δημιουργήσουν μια επικυρωμένη, ασφαλή φόρμα και να βοηθήσουν στη διάγνωση των λόγων για τους οποίους μια φόρμα δεν υποβάλλεται σωστά.

Χειρισμός φορμών PHP

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

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

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

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

Φόρμα PHP

Μια φόρμα είναι μια ετικέτα 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.

Μέθοδοι 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="/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>

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

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

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

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

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

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

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

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

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

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

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

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

Συχνές Ερωτήσεις

Το $_GET διαβάζει τιμές από το URL συμβολοσειρά ερωτήματος, το $_POST διαβάζει τιμές από το σώμα του αιτήματος και το $_REQUEST συγχωνεύει δεδομένα GET, POST και cookie. Προτιμήστε τον συγκεκριμένο πίνακα, ώστε να γνωρίζετε ακριβώς από πού προήλθε μια τιμή.

Μην εμπιστεύεστε ποτέ την ακατέργαστη είσοδο. Επικυρώστε με filter_var() ή κανόνες για κάθε πεδίο και κάντε escape στην έξοδο με htmlspecialchars() για να διακόψετε το XSS. Χρησιμοποιήστε προετοιμασμένες εντολές για εγγραφές σε βάσεις δεδομένων για να αποτρέψετε την εισαγωγή SQL.

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

Ναι. Η Τεχνητή Νοημοσύνη μπορεί να δημιουργήσει τη φόρμα HTML καθώς και επικύρωση από την πλευρά του διακομιστή, προστασία CSRF και έξοδο διαφυγής. RevΔείτε τους κανόνες για κάθε πεδίο και επιβεβαιώστε ότι οι έλεγχοι ασφαλείας ταιριάζουν με την εφαρμογή σας πριν από την ανάπτυξη.

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

Συνοψίστε αυτήν την ανάρτηση με: