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