Dans cette séance de TD on va créer un site web dynamique utilisant une base de données.
Avant de commencer, créez dans votre répertoire m2202 un sous-répertoire m2202-td5 pour sauvegarder les exercices de cette séance (TD #5).
Dans ce répertoire m2202-td5, créez un répertoire appelé exo1 pour le premier exercice, exo2 pour le deuxième, etc.
Cet exercice est un problème réel : quand vous vous inscrivez à l'Université, vous payez la Contribution de Vie Étudiante et de Campus (CVEC). Une fois par an, l'Université lance un appel à projets pour investir cet argent (dans l'ordre de 13 000 €) dans les différents campus.
Tous les étudiants du site d'Arles (IUT, Faculté ALLSH, FEG, FDSP, IFSI, OSU-Institut Pythéas) peuvent proposer des projets pour améliorer la vie étudiante, qui sont ensuite évalués par une commission et éventuellement financés.
Dans ce TD nous allons construire un site web pour choisir démocratiquement les meilleurs projets proposés par l'IUT.
Le site web doit présenter une page sur laquelle on voit les différentes projets avec leurs nombres de votes. On peut ajouter un nouveau projet, ou ajouter un vote sur un projet existant.
Dans cet exercice nous allons construire la base de données nécessaire pour ce projet.
Il nous faut une table pour les projets, dans laquelle on répertorie l'auteur, le message et le nombre de votes de chaque projet. Comme d'habitude, on ajoute une identifiant numérique, ce qui sera très pratique dans la suite.
La table doit donc contenir 4 champs :
Ajoutez un projet à la main (avec phpMyAdmin) pour pouvoir continuer avec les exercices suivants, même si à la fin les projets seront ajoutés par les utilisateurs avec un formulaire.
Note : l'adresse de l'application phpMyAdmin du serveur universitaire est : https://a-pedagoarles-mmi.aix.univ-amu.fr/phpmyadmin/.
Une fois la base de données faite, nous pouvons commencer la page d'accueil.
Dans cet exercice nous allons faire la page d'accueil du site web, dans lequelle il faut afficher tous le projets avec des liens pour voter un projet, et un formulaire pour ajouter un nouveau projet.
Quelques explications :
Le code HTML généré par index.php peut être comme ceci :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>M2202</title>
</head>
<body>
<h1>TD #5</h1>
<ul>
<li>
<em>Auteur 1</em> : Description 1.<br>
Votes : 12. <a href="voter.php?id=1">Voter</a>
</li>
<li>
<em>Auteur 2</em> : Description 2.<br>
Votes : 6. <a href="voter.php?id=2">Voter</a>
</li>
</ul>
<p>
Voulez-vous proposer un nouveau projet ?
</p>
<form method="post" action="ajouter.php">
<div>
<label for="nom">Votre nom :</label>
<input id="nom" type="text" name="user_name">
</div>
<div>
<label for="msg">Idée :</label><br>
<textarea id="msg" name="user_message" rows="5" cols="40"></textarea>
</div>
<input type="submit" value="Envoyer">
</form>
</body>
</html>
Il nous reste maintenant deux pages qui modifient la base de données : une pour ajouter un nouveau projet et une autre pour ajouter un vote sur un projet.
Dans cet exercice nous allons écrire le fichier ajouter.php pour ajouter un projet dans la base de données.
Les étapes à faire sont :
On devrait aussi valider les formulaire : vérifier que le nom de l'auteur n'est pas vide, limiter la longueur de la description, etc. Nous le ferons à la fin de la séance si nous avons le temps.
Dans cet exercice nous allons écrire le fichier voter.php pour incrémenter le nombre de votes d'un projet.
Les étapes à faire sont :