104 lines
2.4 KiB
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()
|
|
]);
|
|
}
|
|
?>
|