66 lines
1.9 KiB
PHP
66 lines
1.9 KiB
PHP
<?php
|
|
error_reporting(0);
|
|
ini_set('display_errors', 0);
|
|
ob_start();
|
|
|
|
header('Content-Type: application/json');
|
|
require_once '../config/config.php';
|
|
require_once '../config/database.php';
|
|
require_once '../config/session.php';
|
|
|
|
if (session_status() === PHP_SESSION_NONE) {
|
|
SessionManager::startSession();
|
|
}
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
|
echo json_encode(['success' => false, 'message' => 'Méthode non autorisée']);
|
|
exit;
|
|
}
|
|
|
|
// CORRECTION : Utiliser les vraies clés de session
|
|
if (!isset($_SESSION['user_id']) || $_SESSION['type_libelle'] !== 'enseignant') {
|
|
echo json_encode(['success' => false, 'message' => 'Non autorisé']);
|
|
exit;
|
|
}
|
|
|
|
$id_eleve = $_POST['id_eleve'] ?? null;
|
|
|
|
if (!$id_eleve) {
|
|
echo json_encode(['success' => false, 'message' => 'ID élève manquant']);
|
|
exit;
|
|
}
|
|
|
|
try {
|
|
$db = Database::getInstance()->getConnection();
|
|
|
|
$stmt = $db->prepare("SELECT login FROM utilisateurs WHERE id_utilisateur = ? AND id_type IN (2, 3)");
|
|
$stmt->execute([$id_eleve]);
|
|
$eleve = $stmt->fetch(PDO::FETCH_ASSOC);
|
|
|
|
if (!$eleve) {
|
|
echo json_encode(['success' => false, 'message' => 'Élève non trouvé']);
|
|
exit;
|
|
}
|
|
|
|
$nouveau_mdp = (strpos($eleve['login'], 'test.') === 0) ? 'test2025' : 'eleve2025';
|
|
$mdp_hash = password_hash($nouveau_mdp, PASSWORD_DEFAULT);
|
|
|
|
$stmt = $db->prepare("UPDATE utilisateurs SET mot_de_passe = ? WHERE id_utilisateur = ?");
|
|
$stmt->execute([$mdp_hash, $id_eleve]);
|
|
|
|
echo json_encode([
|
|
'success' => true,
|
|
'message' => "Mot de passe réinitialisé avec succès à $nouveau_mdp",
|
|
'data' => [
|
|
'login' => $eleve['login'],
|
|
'nouveau_mdp' => $nouveau_mdp
|
|
]
|
|
]);
|
|
|
|
} catch (Exception $e) {
|
|
echo json_encode(['success' => false, 'message' => 'Erreur serveur: ' . $e->getMessage()]);
|
|
}
|
|
|
|
ob_end_flush();
|
|
?>
|