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

Accueil › Devoirs › Bac SI

Devoir pratique STI n°8 : les absences en SQL, la connexion d'un élève et son espace en PHP

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 portent sur l'espace des élèves du site du lycée : l'exercice 1 interroge la base des élèves et de leurs absences, l'exercice 2 écrit les pages PHP de la connexion et de l'espace d'un élève, sur la même base. Barème sur 20 points.

Exercice 1 : les absences en SQL (8 pts)

Le lycée garde ses élèves et leurs absences dans deux tables : eleve (num, nom, classe, login, mdp) et absence (id, #num_eleve, date_abs, justifiee), où justifiee vaut 1 pour une absence justifiée et 0 sinon. Les tables sont créées par ce script :

CREATE TABLE eleve (
  num INT PRIMARY KEY,
  nom VARCHAR(30) NOT NULL,
  classe VARCHAR(10) NOT NULL,
  login VARCHAR(20) NOT NULL UNIQUE,
  mdp VARCHAR(20) NOT NULL
);
CREATE TABLE absence (
  id INT AUTO_INCREMENT PRIMARY KEY,
  num_eleve INT NOT NULL,
  date_abs DATE NOT NULL,
  justifiee INT NOT NULL,
  FOREIGN KEY (num_eleve) REFERENCES eleve(num)
);
INSERT INTO eleve VALUES
  (1, 'Sami Ben Ali', '4SI1', 'sami', 's4mi2026'),
  (2, 'Rim Trabelsi', '4SI1', 'rim', 'r1m.tn'),
  (3, 'Omar Jaziri', '4SI2', 'omar', '0mar99'),
  (4, 'Lina Mansour', '4SI2', 'lina', 'lina2008');
INSERT INTO absence (num_eleve, date_abs, justifiee) VALUES
  (1, '2026-10-05', 0),
  (1, '2026-10-12', 1),
  (3, '2026-10-06', 0),
  (1, '2026-10-20', 0),
  (3, '2026-10-21', 0),
  (2, '2026-10-22', 1);

Exercice 2 : la connexion et l'espace de l'élève (12 pts)

Les tables de l'exercice 1 sont dans la base MySQL lycee, créée par le fichier base.sql ci-dessous. La connexion à la base est dans connexion.php, que chaque page inclut avec require. La page connexion.html envoie le login et le mot de passe à login.php avec la méthode POST.

CREATE DATABASE lycee;
USE lycee;
CREATE TABLE eleve (
  num INT PRIMARY KEY,
  nom VARCHAR(30) NOT NULL,
  classe VARCHAR(10) NOT NULL,
  login VARCHAR(20) NOT NULL UNIQUE,
  mdp VARCHAR(20) NOT NULL
);
CREATE TABLE absence (
  id INT AUTO_INCREMENT PRIMARY KEY,
  num_eleve INT NOT NULL,
  date_abs DATE NOT NULL,
  justifiee INT NOT NULL,
  FOREIGN KEY (num_eleve) REFERENCES eleve(num)
);
INSERT INTO eleve VALUES
  (1, 'Sami Ben Ali', '4SI1', 'sami', 's4mi2026'),
  (2, 'Rim Trabelsi', '4SI1', 'rim', 'r1m.tn'),
  (3, 'Omar Jaziri', '4SI2', 'omar', '0mar99'),
  (4, 'Lina Mansour', '4SI2', 'lina', 'lina2008');
INSERT INTO absence (num_eleve, date_abs, justifiee) VALUES
  (1, '2026-10-05', 0),
  (1, '2026-10-12', 1),
  (3, '2026-10-06', 0),
  (1, '2026-10-20', 0),
  (3, '2026-10-21', 0),
  (2, '2026-10-22', 1);
<?php
$cnx = mysqli_connect("localhost", "root", "", "lycee");
?>
<form action="login.php" method="post">
  <input type="text" name="login" id="login">
  <input type="password" name="mdp" id="mdp">
  <input type="submit" value="Se connecter">
</form>

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