Développement web S2 (R213) – TP #5

Dans cette séance de TP, vous allez réaliser un site web interactif, avec modification d'une base de données avec PHP.

Liens utiles : TD #1 · TP #4

Dans le répertoire r213 que vous avez déjà créé, ajoutez un répertoire nommé r213-tp5 pour sauvegarder les exercices de cette séance (TP #5).

Dans ce répertoire r213-tp5, créez un sous-répertoire appelé exo1 pour le premier exercice, exo2 pour le deuxième, etc. Vos exercices ne seront pas corrigés si vous ne respectez pas ces instructions.

À la fin de la séance, vous devez compresser (en format ZIP ou RAR) le répertoire r213-tp5 contenant tous vos exercices et le soumettre sur AMeTICE.

Seuls les exercices marqués d'une étoile (*) seront évalués. La date limite pour rendre vos exercices est indiquée sur AMeTICE, et aucun travail ne sera accepté après cette date. Le corrigé sera affiché après l'évaluation des exercices.

Exercices

Nous allons continuer à travailler sur le site web du TP précédent afin d'y ajouter des fonctionnalités supplémentaires pour le rendre interactif.

Exercice 1

Dans cet exercice, vous allez afficher les commentaires de chaque album après le tableau listant ses chansons.

Vous devez afficher les commentaires dans une liste non ordonnée comme celle-ci :

...
  </table>
  <p>
    Commentaires :
  </p>
  <ul>
    <li>Un bijou intemporel !!!</li>
    <li>Le meilleur album des TH,une originalité extraordinaire pour un album de 38 ans...que de bons souvenirs de cette fabuleuse époque...Merci pour Mr Fela Kuti,pensé pour Joe8410</li>
    ...
  </ul>
  <p>
    <a href="index.php">Retour</a>
  </p>
</body>
</html>

Pour obtenir les commentaires, vous devez faire une jointure interne similaire à celle de l'exercice 2 du TP #4.

Maintenant, vous allez ajouter la possibilité d'ajouter un nouveau commentaire dans un album.

Exercice 2

Dans cet exercice, vous allez ajouter un formulaire après la liste des commentaires pour permettre l'ajout d'un nouveau commentaire.

Vous commencerez par ajouter un formulaire dans album.php, placé après la liste des commentaires. Ce formulaire doit contenir une zone de saisie de texte (balise <textarea>).

Le fichier chargé d'ajouter le commentaire dans la base de données doit se nommer ajouter_commentaire.php. Il vérifie que le commentaire n'est pas vide (il affiche un message d'erreur si c'est le cas) et insère le commentaire dans la base de données avec une requête SQL comme celle-ci :

INSERT INTO commentaires (album_id, texte)
VALUES (4, `Très bon album !`)

Notez que cette requête SQL comporte deux variables : l'identifiant de l'album et le texte du commentaire. Il est donc nécessaire d'inclure l'identifiant de l'album dans le formulaire. Pour cela, vous devez utiliser une balise comme :

<input type="hidden" name="album_id" value="2">

Après l'insertion du nouveau commentaire, on envoie l'utilisateur vers la page d'accueil.

Il serait plus raisonnable, toutefois, que l'utilisateur reste sur la même page après avoir ajouté un commentaire.

Exercice 3

Dans cet exercice, nous allons rediriger l'utilisateur vers la page de l'album sur lequel il vient de déposer un commentaire.

Pour cela, il faut mettre le lien vers la page de l'album dans la fonction header(). Il existe plusieurs façons de récupérer le slug de l'album : avec une requête à la base de données ou simplement en l'ajoutant dans le formulaire.

Enfin, nous allons ajouter la possibilité de liker une chanson.

Exercice 4

Dans cet exercice, nous allons ajouter, à côté de chaque chanson, un compteur de likes ainsi qu'un bouton pour liker.

Premièrement, il faut ajouter un nouveau champs dans la table chansons pour compter les likes. Dans phpMyAdmin, sélectionnez la table chansons, cliquez sur l'onglet « Structure » et ajoutez une nouvelle colonne. Son nom sera likes et sa valeur par défaut devra être 0.

Dans la page album.php, ajoutez une colonne appelée « Likes » dans le tableau et, pour chaque chanson, affichez un compteur et un lien pour ajouter un like dans la chanson :

<td>48 <a href="ajouter_like.php?id=16">(+)</a></td>

Il faut donc créer un fichier ajouter_like.php qui modifie la base de données afin d'incrémenter le nombre de likes d'une chanson. La requête SQL nécessaire est similaire à :

UPDATE chansons
SET likes = likes + 1
WHERE id = 16

Ensuite, l’utilisateur est redirigé vers la page de l'accueil (ou, si vous en êtes capable, vers la page de l'album de la chanson qui vient d'être likée).