Mission Carthage العربية
اقرا الصفحة هذي بالتونسي

Accueil › Devoirs › Bac SI

Devoir pratique STI n°7 : le site de la bibliothèque, vérifier un livre en JavaScript, lister et ajouter des livres en PHP et MySQL

Bac Sciences de l'informatique, 2ème trimestre. Durée : 1 heure. Sur 20 points.

Écris tes programmes en Python ou en algorithme et vérifie-les tout de suite, puis ouvre la correction exercice par exercice.

Le travail se fait sur ordinateur, avec un serveur local (XAMPP) : chaque fichier est enregistré sous le nom donné, dans le même dossier. Les deux exercices construisent le site de la bibliothèque : la page ajout.html vérifie un nouveau livre avec le fichier controle.js de l'exercice 1, puis l'envoie à la page ajout.php de l'exercice 2 ; ses liens mènent à la liste livres.php. Barème sur 20 points.

Exercice 1 : vérifier le livre en JavaScript (8 pts)

Avant d'envoyer le formulaire d'ajout d'un livre de la page ajout.html (donnée à l'exercice 2), sa fonction verifier() (onsubmit) vérifie les champs avec deux fonctions JavaScript, à écrire dans le fichier controle.js (sans expression régulière) :

Exemples : titreValide(" Agar ") donne true, titreValide(" ") donne false, anneeValide("1955") donne true, anneeValide("19a5") donne false.

Exercice 2 : les pages PHP de la bibliothèque (12 pts)

La bibliothèque garde ses livres dans la base MySQL biblio, créée par le fichier base.sql. La connexion à la base est dans connexion.php, que chaque page inclut avec require. La page ajout.html, reliée à controle.js (exercice 1), envoie un nouveau livre à ajout.php avec la méthode POST ; ses deux liens ouvrent livres.php.

CREATE DATABASE biblio;
USE biblio;
CREATE TABLE auteur (
  id INT PRIMARY KEY,
  nom VARCHAR(40) NOT NULL
);
CREATE TABLE livre (
  id INT AUTO_INCREMENT PRIMARY KEY,
  titre VARCHAR(60) NOT NULL,
  annee INT NOT NULL,
  genre VARCHAR(20) NOT NULL,
  id_auteur INT NOT NULL,
  FOREIGN KEY (id_auteur) REFERENCES auteur(id)
);
INSERT INTO auteur VALUES (1, 'Abou el Kacem Chebbi'), (2, 'Victor Hugo'), (3, 'Albert Memmi');
INSERT INTO livre (titre, annee, genre, id_auteur) VALUES
  ('Les Chants de la vie', 1955, 'Poésie', 1),
  ('Les Misérables', 1862, 'Roman', 2),
  ('La Statue de sel', 1953, 'Roman', 3),
  ('Les Contemplations', 1856, 'Poésie', 2),
  ('Agar', 1955, 'Roman', 3);
<?php
$cnx = mysqli_connect("localhost", "root", "", "biblio");
?>
<p><a href="livres.php?genre=Roman">Nos romans</a> - <a href="livres.php?genre=Poésie">Notre poésie</a></p>
<form action="ajout.php" method="post" onsubmit="return verifier()">
  <input type="text" name="titre" id="titre">
  <input type="text" name="annee" id="annee">
  <input type="text" name="genre" id="genre">
  <input type="number" name="id_auteur" id="id_auteur">
  <input type="submit" value="Ajouter">
</form>
<script>
  function verifier() {
    if (!titreValide(document.getElementById("titre").value)) {
      alert("Titre invalide");
      return false;
    }
    if (!anneeValide(document.getElementById("annee").value)) {
      alert("Année invalide");
      return false;
    }
    return true;
  }
</script>
<script src="controle.js"></script>

Exemple : avec la base donnée, livres.php?genre=Poésie affiche Genre : Poésie, les lignes Les Chants de la vie Abou el Kacem Chebbi et Les Contemplations Victor Hugo, puis 2 livre(s).

Correction détaillée

La correction de ce devoir est réservée aux abonnés. Elle donne l'analyse, l'algorithme en notation tunisienne, le programme Python vérifié et les erreurs fréquentes de chaque exercice. Avec un compte gratuit, tu peux ouvrir 3 corrections de ton choix.

Toutes les corrections jusqu'au devoir de synthèse3 mois pour 20 TND, offre jusqu'au 30 novembre 2026 Envoyer à un parent pour qu'il paie

Sujet original écrit pour Mission Carthage, dans le format d'un devoir pratique d'informatique (4ème Sciences de l'informatique, technologies du web). Ce n'est pas un sujet officiel.

Tout le programme : Bac Sciences de l'informatique · Revoir le cours · Tous les devoirs