12 Master PDF
12 Master PDF
12 Master PDF
Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction
avec le système.
La balise <fieldset> permet, à l'intérieur d'un formulaire, de créer des blocs visuels
permettant d'améliorer la présentation des formulaires. La balise <legend> sert ensuite à
donner un titre au bloc de formulaire.
1
- input : Champs de saisie de texte et différents types de boutons
- select : Liste (menus déroulants et ascenseurs)
- textarea : Zone de saisie de texte libre
L'attribut name est obligatoire, car c'est lui qui permet d'identifier les données côté serveur
et ainsi de récupérer le contenu saisi par l'utilisateur. Il doit être unique, sauf dans le cas d'un
ensemble composé de plusieurs éléments (boutons radio par exemple). Seuls les boutons
submit et reset n'ont pas besoin de cet attribut.
L'attribut value est commun à ces balises, mais son rôle est différent selon le type
d'élément utilisé.
Ces différents exemples sont illustrés sur le site du module de com231a.
L’élément INPUT
Cet élément est utilisé pour définir des zones d'entrée de texte simple, des boutons, des
cases à cocher ou des boutons radio. Le type d'élément dont il s'agit sera précisé en utilisant
l'attribut type.
2
L'élément SELECT
Cet élément sert à définir des listes (menus déroulants ou ascenseurs). Il est utilisé avec
l'élément <option>.
Code Résultat
<select name="menu">
<option value="pomme">Pomme</option>
<option value="banane">Banane</option>
<option value="orange">Orange</option>
<option value="citron" selected= "selected">
Citron</option>
<option value="peche"> Pêche</option>
<option value="poire"> Poire</option>
</select >
L'élément TEXTAREA
Il permet de créer une zone de texte de plusieurs lignes. Il faut spécifier sa taille avec les
attributs rows et cols.
Code Résultat
Exercice 1
Reproduisez la page HTML ci-dessous. Nommez-la avis_site.html.
4
Voici le fichier PHP traite_avis.php qui traite le formulaire ci-dessus.
Intégrez ce code dans une page PHP et testez le avec votre fichier avis_site.html, en
choisissant correctement les noms de vos variables.
Vous pouvez consulter l'exemple de formulaire et de traitement de ce formulaire mis en ligne
sur le site du module pour vous aider.
<?php
// tester si le formulaire a été soumis
if(isset($_POST["valider"]))
{
//tester si les cases du formulaire ne sont pas vides
if(!empty($_POST["nom"])&&!empty($_POST["prenom"])&&!empty($_POST["mail"]))
{
// récupération des valeurs des champs
$nom = $_POST["nom"];
$prenom = $_POST["prenom"];
$avis = $_POST["avis"];
if(strcmp($avis,"oui") == 0)
echo "Nous serons contents de vous accueillir la prochaine fois <br />";
else
echo "Nous regrettons de ne plus jamais vous revoir <br />";
}
else
echo "Toutes les cases du formulaire ne sont pas remplies";
?>
Dans cet exemple, on constate que le fichier PHP n’enregistre pas les données de
l’utilisateur dans une base de données mais lui affiche simplement un message en retour.
Nous allons voir maintenant comment enregistrer les données saisies dans le formulaire
afin de les stocker dans une base de données.
5
Connexion à une base de données
Comme pour vous connecter au réseau de l’université, il vous faut un login et un mot de
passe pour travailler avec une base de données. La base de données n’accepte que des
connexions identifiées.
PHP doit donc fournir à la base de données des informations : le login et le mot de passe
correspondant à la base avec laquelle il veut travailler.
?>
Une fois ce code généré, la connexion à la base de données est établie et il est possible
d’exécuter des requêtes d’insertion, de sélection ou de suppression de données.
<? php
/*Connexion – code donné précedemment*/
$serveur = "info.univ-lemans.fr";
$utilisateur = "com231a_user";
$mdp = "com72";
$base = "com231a";
?>
6
Insérer/supprimer des nouveaux éléments
Pour la requête d’insertion en elle-même voir la notion 3 sur SQL à la section "insérer des
éléments".
Exemple dans le cas où la requête est une requête d’insertion :
<? php
//Connexion
…
//Ecriture de la requête
$requete="INSERT INTO Equipes VALUES(64, 'Corvette racing',
'Corvette C5 R', 'LM-GTS');";
//Envoi de la requête
$reponse = mysql_query($requete);
//Envoi de la requête
$reponse = mysql_query($Requete);
// autre possibilité
echo "Num de l’équipe : ".$donnees['Numero'] ;
echo "<br />Nom de l’équipe : " .$donnees['Nom'];
}
?>
7
Exercice 2
1. Créez une page PHP qui permet de :
a. Se connecter à une base de données
b. D’exécuter des requêtes dans la table de données « Equipes » (cf. Notion 3)
● Une requête de sélection de tous les éléments de la table.
● Une requête de sélection des éléments de la table avec restriction sur les
équipes du type « LM-P1 ».
● Une requête d’insertion d’une nouvelle équipe.
c. D’afficher le résultat de chaque requête champ par champ et ligne par ligne.
2. Enregistrez cette page sous le nom essai_requete.php dans votre dossier
« public_html » et visualisez-la dans votre navigateur.
8
Par exemple :
1. Création d’un formulaire HTML qui demande une date de course et un nom de course
fichier : formulaire_course.html
<html>
<head>
<title>Formulaire</title>
</head>
<body>
<form action="creation_insertion.php" method="post">
<table>
<tr>
<td><b>Date de la course (aaaa/mm/jj) :</b></td>
<td><input name="datecourse" size="50"></td>
</tr>
<tr>
<td><b>Nom de la course : </b></td>
<td><input name="nomcourse" size="50"></td>
</tr>
</table>
<input type=submit></input><br />
</form>
</body>
</html>
$datecourse = $_POST["datecourse"];
$nomcourse = $_POST["nomcourse"];
//Ecriture de la requête
$requete="INSERT into TempsCoureurs values('$datecourse','$nomcourse')";
//Envoi de la requête
$reponse = mysql_query($requete);
}
else
{ // cas où les données n'ont pas été saisies
echo "les champs n'ont pas été remplis";
}
?>
9
Exercice 3
1. Créer un fichier HTML qui permet à une équipe de saisir les caractéristiques de son équipe.
2. Créer le fichier traite_equipe.php (sur l’exemple des fichiers ci-dessus) qui permet
d’ajouter l’équipe saisie par l’utilisateur sans la table « Equipes ».
10