Vous êtes sur la page 1sur 22

Plan du cours

 Chapitre1: Les bases de php


 Chapitre2: Transmettre des données de page en page
 Chapitre3: Stocker des informations dans une BD
 Chapitre4: Utilisation avancée de PHP

1
Plan du chapitre
Chapitre2: Transmettre des données de page en
page

1.Transmettre des données avec l'URL


2.Transmettre des données avec les formulaires
3.Variables superglobales, sessions et cookies
4.Lire et écrire dans un fichier

2
Transmettre Des Données Avec L'url
Cela signifie Uniform Resource Locator, et sert à représenter une
adresse sur le web. Toutes les adresses en haut du navigateur, :
http://www.monsite.com/bonjour.php, sont des URL.
http://www.monsite.com/bonjour.php
?nom=tounsi&prenom=younes

L'URL permettait de transmettre


des informations

3
Envoyer des paramètres dans l'URL

4
Créer un lien avec des paramètres
 On peut créer des liens en HTML pour transmettre des paramètres
d'une page web vers une autre.
 Exemple deux fichiers sur le site :

 Index.php (l'accueil) ;
 bonjour.php.
 On fait un lien de index.php qui mène à bonjour.php et qui lui
transmet des informations, comme le schématise la figure suivante.

5
Récupérer les paramètres en PHP
 On s’intéresse à la page bonjour.php qui réceptionne les paramètres.

 Celle-ci créé automatiquement un tableau au nom un peu


spécial : $_GET. Il s’agit d’un tableau dont les clés correspondent aux
noms des paramètres envoyés.

 On a fait un lien vers bonjour.php?nom=tounsi&prenom=younes, cela


signifie qu’on a accès aux variables suivantes :

Nom Valeur
$_GET[‘nom’] tounsi
$_GET[‘prenom’] younes

 On peut donc récupérer ces informations, les traiter, les afficher,

6
Créer un lien avec des paramètres: Exemple

Index.php
<html>
<body>
<p><a href="bonjour.php?nom=tounsi&prenom=younes">Dis-moi bonjour !</a></p>
</body>
</html>

Bonjour.php
<html>
<body>
<p>Bonjour <?php echo $_GET['prenom'] . ' ' . $_GET['nom']; ?> !</p>
</body>
</html>

7
Créer un lien avec des paramètres :Exemple
 Tous les visiteurs peuvent trafiquer les URL
 Si on fait les tests des codes précédents, on doit tomber sur une URL de la
forme :

8
Tester la présence d'un paramètre
Un autre exemple le visiteur supprime tous les paramètres de l'URL ? il
peut bien tenter d'accéder à : http://localhost/tests/bonjour.php
Que va afficher la page bonjour.php ?
Elle va afficher quelque chose comme :

On a essayé d'afficher la valeur de $_GET['prenom'] et celle


de $_GET['nom']…

PHP avertit qu'on essaie d'utiliser des variables qui n'existent pas, d'où les
« Undefined index ».
9
Tester la présence d'un paramètre :Solution

La fonction isset().

 Fonction qui teste si une variable existe.

10
Fonction isset :exemple

11
Plan du chapitre
Chapitre2: Transmettre des données de page en
page

1.Transmettre des données avec l'URL


2.Transmettre des données avec les formulaires
3.Variables superglobales, sessions et cookies
4.Lire et écrire dans un fichier

12
Les formulaires
 Les formulaires constituent le moyen principal pour les
visiteurs d'entrer des informations sur le site web .

 Les formulaires permettent de créer une interactivité


dans les sites web.

<form method="post" action="cible.php">


<p>
On insèrera les éléments de notre formulaire.
</p>
</form>

13
Envoyer les données d’un formulaire
 Il existe plusieurs moyens/ méthodes d'envoyer les données du
formulaire . On peut en citer deux.

 GET : les données transiteront par l'URL . On peut les récupérer


grâce à l'array $_GET. Cette méthode est peu utilisée, on ne peut
pas envoyer autant dans l'URL (il est préférable de ne pas
dépasser 256 caractères).

 POST : les données ne passent pas dans l'URL, l'utilisateur ne les


voit pas dans la barre d'adresse. Cette méthode permet d'envoyer
autant d’informations que l'on veut, de ce fait on la privilégie
le plus souvent.

14
La réception des données du formulaires
 L'attribut 
action sert à définir la page cible appelée par le
formulaire.
 Cette page recevra les données et elle sera chargée de les traiter.
 Exemple sur le schéma de la figure suivante.

15
Les éléments du formulaire
 Dans un formulaire, on peut insérer des éléments différents : zones de texte,
boutons, cases à cocher, etc.
dans la page cible.php qui fera le traitement. au lieu de recevoir un array $_GET,
on reçoit un array $_POST contenant les données du formulaire !

 Exemple: Les petites zones de texte <input type="text" />


 

16
Les éléments du formulaire
Les valeurs multiples
Certains champs de formulaire peuvent permettre aux visiteurs de saisir plusieurs
valeurs sous un même nom de composant
Exemple:
-un groupe de cases à cocher ayant le même attribut name
- d’une liste de sélection ayant toujours un nom unique
-donner le même nom à des éléments de saisie de texte différents.

Solution: créer une variable de type array. un tableau qui est récupéré côté
serveur.
Exemple:
val1:<input type="checkbox" name= " select[] " value= " val1" />
val2:<input type="checkbox" name= " select[]" value= " val2" />
l’utilisateur peut cocher les deux cases simultanément. Le programmeur récupère
ces valeurs dans les variables suivantes :
$_POST[" select "][0]//
$_POST[" select "][1]//

17
Exemple:
Formulaire de saisie

18
Page de résultat

19
<body>
<form method="post" action="traitementvaleurmultiple.php" >
<fieldset>
<legend>Recherche d'emploi: complétez la fiche </legend>
<div>
Nom<input type="text" name="idt[]" />
Prénom<input type="text" name="idt[]" />
Age<input type="text" name="idt[]" />
<br /><br />
Langues pratiquées<br />
<select name="langue[]" multiple="multiple">
<option value="français"> français</option>
<option value="anglais"> anglais</option>
<option value="allemand"> allemand</option>
<option value="espagnol"> espagnol</option>
</select><br /><br />
Compétences informatiques<br />
HTML<input type="checkbox" name="competence[]" value="HTML" />
CSS<input type="checkbox" name="competence[]" value="CSS" />
PHP<input type="checkbox" name="competence[]" value="PHP" />
MySQL<input type="checkbox" name="competence[]" value="MySQL" />

<br /><br />


20
<input type="reset" value="EFFACER"/>
<input type="submit" value="ENVOI"/>
</div>
</fieldset>
</form>
</body>
</html>
Page appelée: traitementvaleurmultiple.php
<body>
<?php
if(isset($_POST["idt"]) && isset($_POST["langue"]) && isset($_POST["competence"]
{
echo "<table border=\"1\"><tr><th> Récapitulatif de votre fiche d'information
personnelle</th></tr><tr><td>";
$nom=$_POST["idt"][0];
$prenom=$_POST["idt"][1];
$age=$_POST["idt"][2];
$langue = $_POST["langue"];
$competence=$_POST["competence"];
echo"Vous êtes :<b> $prenom ", $nom ,"</b><br />Vous avez <b>$age ans </b> ";
21
echo "<br />Vous parlez :";
echo "<ul>";
foreach($langue as $valeur)
{
echo " <li> $valeur </li>";
}
echo "</ul>";
echo "Vous avez des compétences informatiques en :";
echo "<ul>";
foreach($competence as $valeur)
{
echo "<li> $valeur </li> ";
}
echo "</ul> </td></tr>";
}
else
{
echo " Cochez au moins une compétence!! " ;
}
?>
</body>
22

Vous aimerez peut-être aussi