diff --git a/code/join_session.php b/code/join_session.php
new file mode 100644
index 0000000000000000000000000000000000000000..dc352195a7aa038b2ab5fc000d04eccd8eaad470
--- /dev/null
+++ b/code/join_session.php
@@ -0,0 +1,88 @@
+<?php
+include 'config.php';
+session_start();
+
+if (!isset($_SESSION['user']) || $_SESSION['user']['role'] !== 'student') {
+    echo "<div class='container'><p class='error'>Access denied. Only students can join sessions.</p><a href='login.php'>Go back</a></div>";
+    exit;
+}
+$user = $_SESSION['user'];
+
+$success_message = "";
+$error_message = "";
+
+// Vérifier si une requête POST est envoyée
+if ($_SERVER['REQUEST_METHOD'] === 'POST') {
+    $session_id = $conn->real_escape_string($_POST['session_id']);
+    $student_id = $_SESSION['user']['id'];
+
+    // Vérifier si l'étudiant est déjà inscrit à la session
+    $check_sql = "SELECT * FROM SessionStudent WHERE session_id = '$session_id' AND student_id = '$student_id'";
+    $check_result = $conn->query($check_sql);
+
+    if ($check_result->num_rows > 0) {
+        $error_message = "You are already enrolled in this session.";
+    } else {
+        // Inscription à la session
+        $sql = "INSERT INTO SessionStudent (session_id, student_id) VALUES ('$session_id', '$student_id')";
+        if ($conn->query($sql) === TRUE) {
+            $success_message = "Successfully joined the session!";
+        } else {
+            $error_message = "Error: " . $conn->error;
+        }
+    }
+}
+
+// Récupérer les sessions disponibles
+$sql = "SELECT s.id, s.subject, s.start_time, s.end_time, u.first_name, u.last_name 
+        FROM Session s
+        JOIN User u ON s.tutor_id = u.id
+        WHERE s.status = 'scheduled'";
+$result = $conn->query($sql);
+?>
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Join Session</title>
+    <link rel="stylesheet" href="style.css">
+</head>
+<body>
+	<?php include 'sidebar.php'; ?>
+
+    <div class="main-content">
+    <div class="join-session">
+        <h1>Rejoindre une session</h1>
+        <!-- Affichage des messages de succès ou d'erreur -->
+        <?php if ($success_message): ?>
+            <p class="success"><?= htmlspecialchars($success_message) ?></p>
+            <a href="welcome.php">Go back</a>
+        <?php elseif ($error_message): ?>
+            <p class="error"><?= htmlspecialchars($error_message) ?></p>
+            <a href="welcome.php">Go back</a>
+        <?php endif; ?>
+
+        <!-- Formulaire pour rejoindre une session -->
+        <?php if ($result && $result->num_rows > 0): ?>
+            <form method="POST">
+                <label for="session_id">Sessions disponibles:</label>
+                <select name="session_id" id="session_id" required>
+                    <?php while ($row = $result->fetch_assoc()): ?>
+                        <option value="<?= htmlspecialchars($row['id']) ?>">
+                            <?= htmlspecialchars($row['subject']) ?> 
+                            (<?= date('d/m/Y H:i', strtotime($row['start_time'])) ?> - <?= date('H:i', strtotime($row['end_time'])) ?>) 
+                            by <?= htmlspecialchars($row['first_name']) . ' ' . htmlspecialchars($row['last_name']) ?>
+                        </option>
+                    <?php endwhile; ?>
+                </select>
+                <button type="submit">Join Session</button>
+            </form>
+        <?php else: ?>
+            <!-- Message si aucune session n'est disponible -->
+            <p class="error">Aucune session disponible pour le moment. Veuillez revenir plus tard.</p>
+        <?php endif; ?>
+    </div>
+    </div>
+</body>
+</html>