window.location.hash = '#$section';"; } } // Traitement de l'inscription if (isset($_POST['action']) && $_POST['action'] == 'register') { $nom = secure_input($_POST['nom']); $prenom = secure_input($_POST['prenom']); $email = secure_input($_POST['email']); $password = $_POST['password']; $confirm_password = $_POST['confirm_password']; $errors = []; // Validation if (empty($nom) || empty($prenom) || empty($email) || empty($password)) { $errors[] = "Tous les champs sont requis."; } if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $errors[] = "Adresse email invalide."; } if ($password !== $confirm_password) { $errors[] = "Les mots de passe ne correspondent pas."; } if (strlen($password) < 8) { $errors[] = "Le mot de passe doit contenir au moins 8 caractères."; } // Vérifier si l'email existe déjà $check_email = mysqli_query($conn, "SELECT id FROM users WHERE email = '$email'"); if (mysqli_num_rows($check_email) > 0) { $errors[] = "Cette adresse email est déjà utilisée."; } if (empty($errors)) { $hashed_password = password_hash($password, PASSWORD_DEFAULT); $query = "INSERT INTO users (nom, prenom, email, password) VALUES ('$nom', '$prenom', '$email', '$hashed_password')"; if (mysqli_query($conn, $query)) { $_SESSION['success_message'] = "Compte créé avec succès ! Vous pouvez maintenant vous connecter."; redirect('login'); } else { $errors[] = "Erreur lors de la création du compte: " . mysqli_error($conn); } } if (!empty($errors)) { $_SESSION['error_message'] = implode("
", $errors); } } // Traitement de la connexion if (isset($_POST['action']) && $_POST['action'] == 'login') { $email = secure_input($_POST['email']); $password = $_POST['password']; $query = "SELECT * FROM users WHERE email = '$email'"; $result = mysqli_query($conn, $query); if (mysqli_num_rows($result) == 1) { $user = mysqli_fetch_assoc($result); if (password_verify($password, $user['password'])) { $_SESSION['user_id'] = $user['id']; $_SESSION['user_nom'] = $user['nom']; $_SESSION['user_prenom'] = $user['prenom']; $_SESSION['user_email'] = $user['email']; $_SESSION['user_role'] = $user['role'] ?? 'student'; $_SESSION['success_message'] = "Connexion réussie !"; redirect('dashboard'); } else { $_SESSION['error_message'] = "Mot de passe incorrect."; } } else { $_SESSION['error_message'] = "Aucun compte trouvé avec cet email."; } } // Traitement de la déconnexion if (isset($_GET['logout'])) { session_destroy(); session_start(); $_SESSION['success_message'] = "Déconnexion réussie."; redirect('home'); } // Traitement de l'inscription à un cours if (isset($_POST['action']) && $_POST['action'] == 'enroll' && is_logged_in()) { $course_id = intval($_POST['course_id']); $user_id = $_SESSION['user_id']; // Vérifier si déjà inscrit $check = mysqli_query($conn, "SELECT id FROM inscriptions WHERE user_id = $user_id AND course_id = $course_id"); if (mysqli_num_rows($check) == 0) { $date_fin = date('Y-m-d', strtotime('+20 days')); $query = "INSERT INTO inscriptions (user_id, course_id, date_fin) VALUES ($user_id, $course_id, '$date_fin')"; if (mysqli_query($conn, $query)) { $_SESSION['success_message'] = "Inscription au cours réussie !"; redirect('dashboard'); } else { $_SESSION['error_message'] = "Erreur lors de l'inscription: " . mysqli_error($conn); } } else { $_SESSION['error_message'] = "Vous êtes déjà inscrit à ce cours."; } } // Traitement du quiz if (isset($_POST['action']) && $_POST['action'] == 'submit_quiz' && is_logged_in()) { $quiz_id = intval($_POST['quiz_id']); $module_id = intval($_POST['module_id']); $responses = $_POST['responses']; $user_id = $_SESSION['user_id']; // Calculer le score $score = 0; $total = 0; foreach ($responses as $question_id => $option_id) { $total++; $check_query = "SELECT is_correct FROM options WHERE id = $option_id AND question_id = $question_id"; $check_result = mysqli_query($conn, $check_query); if ($check_result && $row = mysqli_fetch_assoc($check_result)) { if ($row['is_correct']) { $score++; } } } $percentage = $total > 0 ? round(($score / $total) * 100) : 0; // Enregistrer le résultat $query = "INSERT INTO quiz_results (user_id, quiz_id, score, total_questions) VALUES ($user_id, $quiz_id, $percentage, $total)"; if (mysqli_query($conn, $query)) { // Si le score est suffisant, marquer le module comme terminé if ($percentage >= 70) { $update_query = "UPDATE progress SET termine = 1, date_complete = NOW() WHERE user_id = $user_id AND module_id = $module_id"; mysqli_query($conn, $update_query); // Mettre à jour la progression globale update_user_progression($user_id, $module_id); } $_SESSION['quiz_result'] = [ 'score' => $percentage, 'total' => $total, 'correct' => $score, 'passed' => $percentage >= 70 ]; $_SESSION['success_message'] = $percentage >= 70 ? "Félicitations ! Vous avez réussi le quiz avec $percentage%." : "Quiz terminé. Vous avez obtenu $percentage%. Un score de 70% minimum est requis."; redirect('quiz_result'); } } // Fonction pour mettre à jour la progression function update_user_progression($user_id, $module_id) { global $conn; // Récupérer le cours et le jour $query = "SELECT m.course_id, m.jour FROM modules m WHERE m.id = $module_id"; $result = mysqli_query($conn, $query); if ($result && $module = mysqli_fetch_assoc($result)) { // Mettre à jour le jour actuel $update_query = "UPDATE inscriptions SET jour_actuel = GREATEST(jour_actuel, " . ($module['jour'] + 1) . ") WHERE user_id = $user_id AND course_id = {$module['course_id']}"; mysqli_query($conn, $update_query); } } // Récupération des données $categories = []; $courses = []; $user_courses = []; $current_course = null; $current_module = null; $quiz = null; // Récupérer les catégories $cat_query = "SELECT * FROM categories ORDER BY nom"; $cat_result = mysqli_query($conn, $cat_query); if ($cat_result) { while ($row = mysqli_fetch_assoc($cat_result)) { $categories[] = $row; } } // Récupérer les cours $course_query = "SELECT c.*, cat.nom as categorie_nom, cat.couleur FROM courses c JOIN categories cat ON c.categorie_id = cat.id WHERE c.is_published = 1 ORDER BY c.date_creation DESC"; $course_result = mysqli_query($conn, $course_query); if ($course_result) { while ($row = mysqli_fetch_assoc($course_result)) { $courses[] = $row; } } // Récupérer les cours de l'utilisateur connecté if (is_logged_in()) { $user_id = $_SESSION['user_id']; $user_courses_query = "SELECT i.*, c.titre, c.slug, c.image_url, cat.nom as categorie_nom, (SELECT COUNT(*) FROM modules m WHERE m.course_id = c.id) as total_modules, (SELECT COUNT(*) FROM progress p WHERE p.user_id = i.user_id AND p.course_id = i.course_id AND p.termine = 1) as modules_completes FROM inscriptions i JOIN courses c ON i.course_id = c.id JOIN categories cat ON c.categorie_id = cat.id WHERE i.user_id = $user_id ORDER BY i.date_inscription DESC"; $user_courses_result = mysqli_query($conn, $user_courses_query); if ($user_courses_result) { while ($row = mysqli_fetch_assoc($user_courses_result)) { $row['progression'] = $row['total_modules'] > 0 ? round(($row['modules_completes'] / $row['total_modules']) * 100) : 0; $user_courses[] = $row; } } } // Récupérer le cours courant si demandé if (isset($_GET['course_id'])) { $course_id = intval($_GET['course_id']); $current_course_query = "SELECT c.*, cat.nom as categorie_nom, cat.couleur FROM courses c JOIN categories cat ON c.categorie_id = cat.id WHERE c.id = $course_id"; $current_course_result = mysqli_query($conn, $current_course_query); if ($current_course_result && mysqli_num_rows($current_course_result) > 0) { $current_course = mysqli_fetch_assoc($current_course_result); // Récupérer les modules $modules_query = "SELECT * FROM modules WHERE course_id = $course_id ORDER BY jour ASC"; $modules_result = mysqli_query($conn, $modules_query); $modules = []; if ($modules_result) { while ($row = mysqli_fetch_assoc($modules_result)) { $modules[] = $row; } } // Récupérer le module courant $current_module_id = isset($_GET['module_id']) ? intval($_GET['module_id']) : 0; if ($current_module_id > 0) { $module_query = "SELECT * FROM modules WHERE id = $current_module_id"; $module_result = mysqli_query($conn, $module_query); if ($module_result && mysqli_num_rows($module_result) > 0) { $current_module = mysqli_fetch_assoc($module_result); // Récupérer le quiz du module $quiz_query = "SELECT * FROM quizzes WHERE module_id = $current_module_id"; $quiz_result = mysqli_query($conn, $quiz_query); if ($quiz_result && mysqli_num_rows($quiz_result) > 0) { $quiz = mysqli_fetch_assoc($quiz_result); // Récupérer les questions $questions_query = "SELECT * FROM questions WHERE quiz_id = {$quiz['id']}"; $questions_result = mysqli_query($conn, $questions_query); $questions = []; if ($questions_result) { while ($row = mysqli_fetch_assoc($questions_result)) { // Récupérer les options $options_query = "SELECT * FROM options WHERE question_id = {$row['id']}"; $options_result = mysqli_query($conn, $options_query); $options = []; if ($options_result) { while ($opt = mysqli_fetch_assoc($options_result)) { $options[] = $opt; } } $row['options'] = $options; $questions[] = $row; } } $quiz['questions'] = $questions; } } } } } ?> FormTech - Formation en Informatique
Quiz terminé ! Score: %

Formez-vous aux métiers du numérique

Des formations complètes de 20 jours avec suivi personnalisé et évaluation continue

Nos domaines de formation

Choisissez parmi nos 4 spécialités informatiques

Toutes nos formations

Découvrez nos programmes complets de 20 jours

...

jours

Créer un compte

Rejoignez notre communauté d'apprentissage

Minimum 8 caractères

Connexion

Accédez à votre espace de formation

Mot de passe oublié ?

Accès restreint

Vous devez être connecté pour accéder à cette page.

Bonjour, ! 👋

Bienvenue sur votre tableau de bord. Continuez votre apprentissage.

0) { $average_progress = round($average_progress / $total_courses); } ?>

Formations

Terminées

%

Progression moyenne

En cours

Mes formations

Aucune formation

Vous n'êtes inscrit à aucune formation pour le moment.

Jour actuel : /20

%
/20 modules
0%

Progression globale

Jour 1 sur 20

Modules du cours

Jour :
min

Aucun module disponible

Sélectionnez un module

N/A

Sélectionnez un module dans la barre latérale pour afficher son contenu.

Cours non trouvé

Le cours demandé n'existe pas ou n'est plus disponible.

questions minutes Score minimum: %
$question): ?>

Question

point 1 ? 's' : ''; ?>

Quiz non disponible

Le quiz demandé n'est pas disponible pour le moment.

%

Questions répondues:
Réponses correctes:
Score: %
Résultat:

Aucun résultat

Aucun résultat de quiz à afficher.

À propos de FormTech

Notre mission est de rendre l'éducation informatique accessible à tous

Notre Vision

FormTech a été créé avec une vision simple : démocratiser l'accès à la formation informatique de qualité. Nous croyons que tout le monde devrait avoir la possibilité d'acquérir des compétences numériques essentielles, quelle que soit sa situation géographique ou son background.

Notre Méthodologie

Notre approche unique de formation sur 20 jours a été développée par des experts pédagogiques. Chaque programme est soigneusement structuré pour permettre une progression régulière et mesurable, avec des évaluations quotidiennes pour renforcer les acquis.

Nos Valeurs

  • Accessibilité : Des formations abordables pour tous
  • Qualité : Contenu créé par des experts du secteur
  • Pratique : Approche centrée sur la mise en pratique
  • Flexibilité : Apprenez à votre rythme, où que vous soyez
  • Support : Accompagnement continu tout au long de votre parcours

Notre Équipe

Notre équipe est composée de professionnels passionnés par l'éducation et la technologie. Des développeurs expérimentés, des administrateurs systèmes certifiés, des formateurs pédagogues et des designers UX/UI travaillent ensemble pour créer la meilleure expérience d'apprentissage possible.