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