Σάββατο, 13 Αυγούστου, 2022
spot_img
ΑρχικήPHPPHP - GET & POST

PHP – GET & POST

PHP – GET & POST 

Λειτουργίες που αφορούν μεθόδους PHP – GET & POST

Υπάρχουν δύο τρόποι με τους οποίους ο πελάτης του προγράμματος περιήγησης μπορεί να στείλει πληροφορίες στον διακομιστή web.

  • Η μέθοδος GET
  • Η μέθοδος POST

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

name1=value1&name2=value2&name3=value3

Τα κενά διαστήματα αφαιρούνται και αντικαθίστανται με τον χαρακτήρα + και τυχόν άλλοι μη αλφαριθμητικοί χαρακτήρες αντικαθίστανται με δεκαεξαδικές τιμές. Αφού κωδικοποιηθούν οι πληροφορίες αποστέλλονται στον διακομιστή.

Η μέθοδος GET

Στέλνει τις κωδικοποιημένες πληροφορίες χρήστη που επισυνάπτονται στο αίτημα σελίδας. Η σελίδα και οι κωδικοποιημένες πληροφορίες χωρίζονται με το χαρακτήρα ?.

http://www.test.com/index.htm?name1=value1&name2=value2
  • Παράγει μια μεγάλη συμβολοσειρά που εμφανίζεται στα αρχεία καταγραφής του διακομιστή σας, στο πλαίσιο του προγράμματος περιήγησης.
  • Περιορίζεται στην αποστολή μόνο 1024 χαρακτήρων.
  • Ποτέ μην χρησιμοποιείτε τη μέθοδο GET εάν έχετε κωδικό πρόσβασης ή άλλες ευαίσθητες πληροφορίες για αποστολή στον διακομιστή.
  • Δεν μπορεί να χρησιμοποιηθεί για την αποστολή δυαδικών δεδομένων, όπως εικόνων ή εγγράφων word, στον διακομιστή.
  • Η πρόσβαση στα δεδομένα που αποστέλλονται είναι δυνατή χρησιμοποιώντας τη μεταβλητή περιβάλλοντος QUERY_STRING.
  • Η PHP παρέχει συσχετικό πίνακα $_GET για πρόσβαση σε όλες τις απεσταλμένες πληροφορίες χρησιμοποιώντας τη μέθοδο GET.

Δοκιμάστε το παρακάτω παράδειγμα βάζοντας τον πηγαίο κώδικα στο script test.php

<?php
   if( $_GET["name"] || $_GET["age"] ) {
      echo "Welcome ". $_GET['name']. "<br />";
      echo "You are ". $_GET['age']. " years old.";
      exit();
   }
?>
<html>
   <body>
   
      <form action = "<?php $_PHP_SELF ?>" method = "GET">
         Name: <input type = "text" name = "name" />
         Age: <input type = "text" name = "age" />
         <input type = "submit" />
      </form>
      
   </body>
</html>

Θα παράγει το ακόλουθο αποτέλεσμα:

Forms

Η μέθοδος POST

Μεταφέρει πληροφορίες μέσω κεφαλίδων HTTP. Οι πληροφορίες κωδικοποιούνται όπως περιγράφεται στην περίπτωση της μεθόδου_GET και τοποθετούνται σε μια κεφαλίδα που ονομάζεται QUERY_STRING.

  • Δεν έχει κανέναν περιορισμό στο μέγεθος των δεδομένων προς αποστολή.
  • Μπορεί να χρησιμοποιηθεί για την αποστολή δεδομένων ASCII καθώς και δυαδικών δεδομένων.
  • Τα δεδομένα που αποστέλλονται με τη μέθοδο POST περνούν από την κεφαλίδα HTTP, επομένως η ασφάλεια εξαρτάται από το πρωτόκολλο HTTP. Χρησιμοποιώντας το Secure HTTP μπορείτε να βεβαιωθείτε ότι οι πληροφορίες σας είναι ασφαλείς.
  • Η PHP παρέχει συσχετικό πίνακα $_POST για πρόσβαση σε όλες τις πληροφορίες που αποστέλλονται χρησιμοποιώντας τη μέθοδο POST.

Δοκιμάστε το παρακάτω παράδειγμα βάζοντας τον πηγαίο κώδικα στο script test.php.

<?php
   if( $_POST["name"] || $_POST["age"] ) {
      if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) {
         die ("invalid name and name should be alpha");
      }
      echo "Welcome ". $_POST['name']. "<br />";
      echo "You are ". $_POST['age']. " years old.";
      
      exit();
   }
?>
<html>
   <body>
   
      <form action = "<?php $_PHP_SELF ?>" method = "POST">
         Name: <input type = "text" name = "name" />
         Age: <input type = "text" name = "age" />
         <input type = "submit" />
      </form>
   
   </body>
</html>

Θα παράγει το ακόλουθο αποτέλεσμα:

Forms

Η μεταβλητή $_REQUEST

Η μεταβλητή PHP $_REQUEST περιέχει τα περιεχόμενα των $_GET, $_POST και $_COOKIE. Θα συζητήσουμε τη μεταβλητή $_COOKIE όταν θα εξηγήσουμε σχετικά με τα cookies. Η μεταβλητή PHP $_REQUEST μπορεί να χρησιμοποιηθεί για τη λήψη του αποτελέσματος από δεδομένα φόρμας που αποστέλλονται με τις μεθόδους GET και POST.

Δοκιμάστε το παρακάτω παράδειγμα βάζοντας τον πηγαίο κώδικα στο script test.php.

<?php
   if( $_REQUEST["name"] || $_REQUEST["age"] ) {
      echo "Welcome ". $_REQUEST['name']. "<br />";
      echo "You are ". $_REQUEST['age']. " years old.";
      exit();
   }
?>
<html>
   <body>
      
      <form action = "<?php $_PHP_SELF ?>" method = "POST">
         Name: <input type = "text" name = "name" />
         Age: <input type = "text" name = "age" />
         <input type = "submit" />
      </form>
      
   </body>
</html>

Εδώ η μεταβλητή $_PHP_SELF περιέχει το όνομα του script self στο οποίο καλείται.

Θα παράγει το ακόλουθο αποτέλεσμα:

Forms

Μπορείτε να ενημερωθείτε για την php στο σχετικό θεματικό τμήμα του blog μας που μπορείτε να δείτε εδώ.

Αν θέλετε να μάθετε περισσότερα για την κατασκευή ιστοσελίδας παρακολουθήστε το σεμινάριο Web Design και άλλα σεμινάρια εξ αποστάσεως από το Εργαστήριο ΤΠΕ Ήρων.

Πηγή: tutorialspoint.com

 

Must Read

spot_img