Transmettre les données d'une page à une autre page

  1. Transmettre les données à partir d’une URL
  2. Transmettre les données à partir d’un formulaire

1. Transmettre les données à partir d’une URL

L’objectif de cette partie, c’est de transmettre les données d’une page à une autre page à partir d’une url. Bon! Voyons cette url:

Si nous observons cette url, nous remarquons que la variable pseudo qui est égale à samomoi a été transmise à la page infosdumembre.php.

Jusqu’à maintenant, c’est bien clair, enfin je l’espère que c’est bien clair. Puisqu’on a bien compris le principe, nous allons passer directement au cas pratique. Nous allons créer deux pages pour voir comment cela marche.

Une page destinée à afficher la liste des membres: il s’agit de la page membres.php; et une autre page destinée à afficher les infos des membres: il s’agit de la page infosdumembre.php.

Insérons ce bout de code dans la page membres.php:

On n’a rien à expliquer pour le moment, c’est du html.

Maintenant cliquer le lien qui se trouve sur votre page membres.php et observer l’url.

Si, si je vois l’url, mais c’est nul, je ne m’entendais pas à ça.

Oui je sais que c’est nul, mais ce n’est que le début. Calmez-vous, on est loin de la fin du cours. Et je sais aussi que vous saviez déjà cela car on l’a déjà vu sur le cours du HTML, mais je vous l’assure ça deviendra intéressant, vous allez voir.

Maintenant nous allons voir comment récupérer les infos transmises à partir de cette URL. Pour récupérer des informations transmises à partir d’une URL, on utilise la variable prédéfinie $_GET.

Dans notre cas, nous allons insérer ce code dans la page infosdumembre.php:

Et comme vous remarquez, maintenant si on clique sur le lien existant sur la page membres.php, on nous affiche ceci:
Ce membre a comme pseudo samomoi.

Bon! Jusqu’à là on a réussi à récupérer les infos qu’on voulait récupérer. Mais essayez maintenant d’afficher la page infosdumembre.php et voir ce qu’elle va nous afficher.
Si vous avez bien vu, la page nous affiche quelque chose du genre: Ce membre a comme pseudo
Notice: Undefined index: pseudo in C:\Documents and Settings\samomoi\Bureau\LABO\php\tr\infosdumembre.php on line 1

Ce problème est du au faite que la page infosdumembre.php n’est pas capable de savoir si les informations ont été transmises ou pas. Elle n’est pas aussi capable de savoir que les informations transmises ont été les bonnes. Cependant pour résoudre ce problème, nous allons vérifier si la valeur de la variable transmise existe. Par exemple dans notre cas, nous allons dire si la valeur de la variable pseudo existe, affiche « Ce membre a comme pseudo «son pseudo»» sinon affiche « désolé, ce membre n’existe pas ».

Pour vérifier si la valeur de la variable existe, nous allons utiliser isset.
Voci le code PHP de notre programme:

2. Transmettre les données à partir d’un formulaire

Dans cette partie nous allons travailler avec nos deux pages qui sont membres.php et infosdumembre.php. Alors je vous demande d’effacer tous ceux qui existent sur ces deux pages.

Notre page membres.php va contenir notre formulaire dont voici le code HTML:

Si vous ne savez pas comment créer un formulaire, retournez sur notre cours de HTML, chap: les formulaires

Comme vous voyez ici, la page qui va traiter nos données est la page infosdumembre.php et la méthode utilisée est post. Donc pour récupérer les données à partir de notre formulaire, nous allons utiliser la variable $_POST.

Le code source de notre page infosdumembre.php sera donc:

Le Danger:

Avec notre formulaire, un visiteur, au lieu de mettre son pseudo, il peut mettre du html, du JavaScript, du PHP... Et ce dernier sera exécuté au niveau de notre page infosdumembre.php. Pour éviter qu’une personne malveillante fasse son malin, nous allons utiliser htmlspecialchars, comme ça le code sera affiché en tant que tel au lieu d’être exécuté.

Dans ce cas le code de notre page infosdumembre.php deviendra:

Nous venons de terminer ce chapitre, je vous souhaite une bonne compréhension et bonne chance.




Une question? Cliquez ici pour la poser.

Retour sur le portail du PHP