Files
webval/enseignant/get_eleves_classe.php

104 lines
2.4 KiB
PHP

<?php
// === PROTECTION JSON - NE PAS SUPPRIMER ===
error_reporting(0);
ini_set('display_errors', 0);
ob_start();
// === FIN PROTECTION ===
/**
* API élèves - VERSION ULTRA ROBUSTE
* Capture TOUTES les erreurs avant d'envoyer le JSON
*/
// Démarrer le buffer AVANT tout
ob_start();
// Désactiver l'affichage des erreurs
ini_set('display_errors', 0);
error_reporting(0);
// Fonction pour nettoyer et envoyer JSON
function sendJSON($data) {
// Vider et ignorer tout ce qui a été bufferisé (erreurs, warnings, etc.)
ob_end_clean();
// Envoyer les headers
header('Content-Type: application/json; charset=utf-8');
header('Cache-Control: no-cache, must-revalidate');
// Envoyer le JSON
echo json_encode($data);
exit;
}
try {
// Includes
require_once '../config/config.php';
require_once '../config/database.php';
require_once '../config/session.php';
// Vérifier authentification
if (!SessionManager::isLoggedIn()) {
sendJSON([
'success' => false,
'message' => 'Non connecté'
]);
}
$user = SessionManager::getUser();
if ($user['id_type'] != 1) {
sendJSON([
'success' => false,
'message' => 'Accès réservé aux enseignants'
]);
}
// Connexion BDD
$db = Database::getInstance()->getConnection();
// Paramètre
if (!isset($_GET['id_classe'])) {
sendJSON([
'success' => false,
'message' => 'Paramètre id_classe manquant'
]);
}
$id_classe = (int)$_GET['id_classe'];
// Requête
$stmt = $db->prepare("
SELECT
id_utilisateur,
login,
nom,
prenom,
actif,
date_inscription
FROM utilisateurs
WHERE id_classe = ? AND id_type IN (2, 3)
ORDER BY nom, prenom
");
$stmt->execute([$id_classe]);
$eleves = $stmt->fetchAll(PDO::FETCH_ASSOC);
// Succès
sendJSON([
'success' => true,
'eleves' => $eleves,
'total' => count($eleves),
'mot_de_passe_defaut' => 'eleve2025',
'info' => 'Mot de passe par défaut lors de l\'import'
]);
} catch (Exception $e) {
sendJSON([
'success' => false,
'message' => 'Erreur: ' . $e->getMessage(),
'file' => $e->getFile(),
'line' => $e->getLine()
]);
}
?>