PHP Manual
/
Formulaires

Formulaires, traitement des formulaires en PHP

22. 08. 2019

Je suppose que nous avons créé un formulaire HTML, que nous envoyons et maintenant nous voulons traiter les données. Il existe un article séparé sur la création d'un formulaire HTML.

Réception des données - différentes manières

La manière dont le formulaire est envoyé est définie directement dans le HTML

Il y a 2 options :

  • GET - Il est visible dans la barre d'adresse après le point d'interrogation. Par exemple : "php.baraja.cz/search.php?query=formulare";.
  • POST - Caché (non visible), la plupart des formulaires sont envoyés par la poste.

Nous devons ensuite les lire en PHP en utilisant la même méthode.

Récupérer les données de l'utilisateur et les transférer au script

La base est un formulaire HTML, comment le faire vous pouvez lire dans un article séparé.

Pour commencer, supposons un simple formulaire permettant de saisir le nom de l'utilisateur :

<form action="welcome.php" method="GET">
Zadejte jméno: <input type="text" name="username">
<input type="submit" value="odeslat">
</form>

Une zone de texte apparaîtra pour saisir un nom et cliquer sur soumettre. Lorsque le bouton est cliqué, le contenu du champ est envoyé au script welcome.php.

Maintenant pour le traitement réel dans le fichier welcome.php :

$username = $_GET['nom d'utilisateur'];
echo 'Le nom saisi est :' . $username;

Notez la variable spéciale $_GET. Il s'agit d'une variable superglobale qui contient les données du formulaire et à laquelle on peut accéder sous forme de tableau.

Le problème de cette solution, toutefois, est que les données reçues ne sont pas sécurisées et qu'un formulaire similaire peut être facilement attaqué. Par exemple, un attaquant potentiel peut saisir un code javascript dans le champ au lieu d'un nom, qui sera écrit sur la page et exécuté.

Par conséquent, nous devons toujours assainir les données de l'utilisateur avant de les intégrer au code HTML :

$username = $_GET['nom d'utilisateur'] ?? 'Inconnu';
echo 'Le nom saisi est :' . htmlspecialchars($username);

Traitement ultérieur

Nous pouvons faire n'importe quoi avec les données reçues et les traiter comme n'importe quelle variable ordinaire.

Par exemple, ajoutez la valeur dans deux champs :

echo $_GET['x'] + $_GET['y'];

Ou enregistrez dans un fichier, une base de données, un courriel, ...

Les fonctions suivantes sont utiles à cet effet :

  • file_put_contents - fonction permettant d'enregistrer des données dans un fichier
  • MD5 - calcul de la somme de contrôle, par exemple pour les mots de passe
  • Cookies - enregistrer des données dans les cookies (petits fichiers à l'intérieur du navigateur web).

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
Status:
All systems normal.
2024