Les formulaires font partie intégrantes du HTML de base. C'est le mécanisme le plus classiquement utilisé pour appeler un script php avec des paramètres sous la forme de clés / valeur. La balise "form" a deux attributs principaux :

  • action : permet de définir le script qui sera appelé à la soumission du formulaire
  • method : GET ou POST
    • La méthode GET fait passer les paramètres dans l'url, et n'a pas de corps, elle n'est donc pas indiquée pour faire passer des données volumineuses ou sensible (login / mot de passe)
    • La méthode POST fait passer les paramèters dans le corps de la requête HTTP. Elle est considérée comme plus sécurisée et permet d'envoyer des données plus volumineuses.

 Ex de formulaire HTML : 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Test formulaire</title>
</head>
<body>
  <form action="/09formphp.php" method="GET">
    <label for="firstname">Nom de famille</label>
    <input type="text" name="firstname" id="firstname">
    <input type="submit" value="Envoyer">
  </form>
</body>
</html>

 

Le script php appelé va récupérer les données envoyées dans une variable prédéfinie de type tableau associatif : $_GET ou $_POST. Ex de script PHP de récupération des données d'un formulaire :

<!DOCTYPE html>
<html lang="en"><head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Résultat formulaire</title>
</head>
<body>
  <p>Votre nom : <?= $_GET["firstname"]; ?></p>
</body>
</html>

Le cas particulier de l'upload de fichiers (dont images)

cf : https://www.php.net/manual/fr/features.file-upload.post-method.php