PHP, la transmission de données

L’un des intérêts du PHP est de pouvoir rendre des pages web dynamique qui pourront être modifiées en fonction de l’utilisateur. La transmission de données ne se fait pas réellement en PHP, celle-ci se fait en HTML (principalement), en revanche, le traitement se fait en php (sur un serveur dont le langage est le PHP).

La transmission de données se fait en utilisant deux méthodes : GET et POST, que nous allons voir dans cet page.

L’ensemble des fichiers sont disponibles sur ce dépôt. Ils sont tous à mettre dans le même dossier (attention à l’emplacement sur un serveur.

La méthode GET

La méthode GET permet de transmettre des informations en utilisant la barre d’adresse comme ceci : https://www.google.fr/search?rlz=1C1GFR343&q=programmationsurleweb. Ce sont des données directement visible.

Lorsque l’on fait de l‘URL Rewriting, l’adresse est plus lisible : https://programmation.surleweb-france.fr/avec-quoi-creer-son-site/, mais le traitement derrière (pour simplifier) est équivalent à la méthode GET.

Voyons le contenu du fichier envoi-get.php :

<html lang="fr">
	<head>
		<meta charset="UTF-8">
		<title>Envoi par la méthode GET</title>
	</head>
	<body>
		<a href="reception-get.php?nom=Nicolas&age=36">Envoi</a>
	</body>
</html>

Les informations à envoyer sont présentes sous cette forme dans l’attribut href du lien :

A présent, le fichier php qui va réceptionner les données, c’est-à-dire reception-get.php :

<html lang="fr">
	<head>
		<meta charset="UTF-8">
		<title>Réception par la méthode GET</title>
	</head>
	<body>
		<p>Bienvenu <strong><?= $_GET['nom'] ?></strong>, tu as <strong><?= $_GET['age']?></strong>, ce n'est pas un peu vieux</p>
	</body>
</html>

La récupération se fait avec la constante $_GET qui est un tableau, les éléments de ce tableau sont identifiés par le nom des variables qui ont été transmis dans l’adresse.

Dans mon exemple, j’ai simplement intégrer le code PHP dans mon code HTML.

La méthode POST

La transmission de données par la méthode POST se fait directement dans le script sans passer par l’URL, il s’agit de la méthode la plus couramment utilisée, notamment pour les formulaires.

Comme pour la méthode GET, voyons un petit exemple, en premier lieu, le fichier envoi-post.php :

<html lang="fr">
	<head>
		<meta charset="UTF-8">
		<title>Envoi par la méthode POST</title>
	</head>
	<body>
		<form method="post" action="reception-post.php">
			<input type="text" name="nom" value="Nicolas">
			<input type="number" step=1 name="age" value=36>
			<input type="submit" name="envoyer" value="Envoyer">
		</form>
	</body>
</html>

Le but de cet article n’est pas de rentrer dans les détails des formulaires, ceux qui nous intéresse ici sont :

  • dans la balise form, la valeur de l’attribut method est post, la valeur de l’attribut action est la page que nous voulons atteindre.
  • les différentes balises input représente les données que nous voulons envoyer, il existe bien d’autres types, pour mon exemple, j’ai pris un type texte et nombre (le submit est pour exécuter le formulaire vers la page identifiée dans action)
  • L’attribut name des balises input sont les noms des variables
  • l’attribut value permet de saisir une valeur par défaut dans le champ

maintenant, voyons le fichier reception-post.php :

<html lang="fr">
	<head>
		<meta charset="UTF-8">
		<title>Réception par la méthode POST</title>
	</head>
	<body>
		<p>Bienvenu <strong><?= $_POST['nom'] ?></strong>, tu as <strong><?= $_POST['age']?></strong>, tout compte fait, ce n'est pas un peu vieux</p>
	</body>
</html>

De la même manière que nous récupérons les données avec la constantes $_GET, avec la méthode POST, celles-ci sont récupérées avec la constante $_POST sous forme de tableau.

Conclusion

Tu es maintenant prêt à réaliser ton premier formulaire d’inscription, bien entendu, tu devras y mettre un peu de sécurité.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.