<?php
session_start();
require_once "config.php";
$welcome_message = "";
$titre = $contenu = "";
$titre_err = $contenu_err = "";
if ($_SERVER["REQUEST_METHOD"] == "POST"
{
$titre = trim($_POST["titre"]);
$contenu = trim($_POST["contenu"]);
if (empty($titre)) {
$titre_err = "Veuillez entrer un titre pour le sujet.";
}
if (empty($contenu)) {
$contenu_err = "Veuillez entrer un contenu pour le sujet.";
}
if (empty($titre_err) && empty($contenu_err)) {
$user_id = $_SESSION["user_id"];
$sql = "INSERT INTO topics (author_id, titre, content, creation_date) VALUES (?, ?, ?, NOW())";
if ($stmt = $mysqli->prepare($sql)) {
$stmt->bind_param("iss", $user_id, $titre, $contenu);
if ($stmt->execute()) {
header("Location: " . $_SERVER['PHP_SELF']);
exit();
} else {
echo "Une erreur s'est produite. Veuillez réessayer plus tard.";
}
$stmt->close();
}
}
}
if (isset($_SESSION["user_id"])) {
$user_id = $_SESSION["user_id"];
$sql = "SELECT pseudo FROM users WHERE id = ?";
if ($stmt = $mysqli->prepare($sql)) {
$stmt->bind_param("i", $user_id);
if ($stmt->execute()) {
$stmt->store_result();
if ($stmt->num_rows == 1) {
$stmt->bind_result($pseudo);
if ($stmt->fetch()) {
$welcome_message = "Bienvenue, $pseudo!";
}
}
}
$stmt->close();
}
} else {
$welcome_message = '<a href="register.php">Inscription</a> / <a href="login.php">Connexion</a>';
}
$sql = "SELECT topics.id, topics.titre, topics.creation_date, users.pseudo AS auteur,
MAX(replies.creation_date) AS dernier_message_date, COUNT(replies.id) AS nbr_replies
FROM topics
LEFT JOIN users ON topics.author_id = users.id
LEFT JOIN replies ON topics.id = replies.topic_id
GROUP BY topics.id, topics.titre, topics.creation_date, users.pseudo
ORDER BY COALESCE(MAX(replies.creation_date), topics.creation_date) DESC";
$result = $mysqli->query($sql);
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Index</title>
</head>
<body>
<div>
<h1>Forum</h1>
<div><?php echo $welcome_message; ?></div>
</div>
<div>
<h2>Liste des sujets</h2>
<table>
<thead>
<tr>
<th>Sujet</th>
<th>Auteur</th>
<th>Nbr</th>
<th>Dernier message</th>
</tr>
</thead>
<tbody>
<?php
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td><a href='topic.php?id=" . $row['id'] . "'>" . $row['titre'] . "</a></td>";
echo "<td>" . $row['auteur'] . "</td>";
echo "<td>" . $row['nbr_replies'] . "</td>";
echo "<td>" . ($row['dernier_message_date'] ? $row['dernier_message_date'] : $row['creation_date']) . "</td>";
echo "</tr>";
}
} else {
echo "<tr><td colspan='4'>Aucun sujet trouvé.</td></tr>";
}
?>
</tbody>
</table>
</div>
<div>
<?php
if (isset($_SESSION["user_id"])) {
echo '<h2>Ajouter un nouveau sujet</h2>';
echo '<form method="post" action="' . htmlspecialchars($_SERVER["PHP_SELF"]) . '">';
echo '<div>';
echo '<label for="titre">Titre :</label>';
echo '<input type="text" name="titre" id="titre" value="' . $titre . '" required>';
echo '<span>' . $titre_err . '</span>';
echo '</div>';
echo '<div>';
echo '<label for="contenu">Contenu :</label>';
echo '<textarea name="contenu" id="contenu" rows="4" required>' . $contenu . '</textarea>';
echo '<span>' . $contenu_err . '</span>';
echo '</div>';
echo '<div>';
echo '<input type="submit" value="Ajouter">';
echo '</div>';
echo '</form>';
} else {
echo '<p>Connectez-vous pour ajouter un nouveau sujet.</p>';
}
?>
</div>
</body>
</html>
<?php
$mysqli->close();
?>
session_start();
require_once "config.php";
$welcome_message = "";
$titre = $contenu = "";
$titre_err = $contenu_err = "";
if ($_SERVER["REQUEST_METHOD"] == "POST"
{$titre = trim($_POST["titre"]);
$contenu = trim($_POST["contenu"]);
if (empty($titre)) {
$titre_err = "Veuillez entrer un titre pour le sujet.";
}
if (empty($contenu)) {
$contenu_err = "Veuillez entrer un contenu pour le sujet.";
}
if (empty($titre_err) && empty($contenu_err)) {
$user_id = $_SESSION["user_id"];
$sql = "INSERT INTO topics (author_id, titre, content, creation_date) VALUES (?, ?, ?, NOW())";
if ($stmt = $mysqli->prepare($sql)) {
$stmt->bind_param("iss", $user_id, $titre, $contenu);
if ($stmt->execute()) {
header("Location: " . $_SERVER['PHP_SELF']);
exit();
} else {
echo "Une erreur s'est produite. Veuillez réessayer plus tard.";
}
$stmt->close();
}
}
}
if (isset($_SESSION["user_id"])) {
$user_id = $_SESSION["user_id"];
$sql = "SELECT pseudo FROM users WHERE id = ?";
if ($stmt = $mysqli->prepare($sql)) {
$stmt->bind_param("i", $user_id);
if ($stmt->execute()) {
$stmt->store_result();
if ($stmt->num_rows == 1) {
$stmt->bind_result($pseudo);
if ($stmt->fetch()) {
$welcome_message = "Bienvenue, $pseudo!";
}
}
}
$stmt->close();
}
} else {
$welcome_message = '<a href="register.php">Inscription</a> / <a href="login.php">Connexion</a>';
}
$sql = "SELECT topics.id, topics.titre, topics.creation_date, users.pseudo AS auteur,
MAX(replies.creation_date) AS dernier_message_date, COUNT(replies.id) AS nbr_replies
FROM topics
LEFT JOIN users ON topics.author_id = users.id
LEFT JOIN replies ON topics.id = replies.topic_id
GROUP BY topics.id, topics.titre, topics.creation_date, users.pseudo
ORDER BY COALESCE(MAX(replies.creation_date), topics.creation_date) DESC";
$result = $mysqli->query($sql);
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Index</title>
</head>
<body>
<div>
<h1>Forum</h1>
<div><?php echo $welcome_message; ?></div>
</div>
<div>
<h2>Liste des sujets</h2>
<table>
<thead>
<tr>
<th>Sujet</th>
<th>Auteur</th>
<th>Nbr</th>
<th>Dernier message</th>
</tr>
</thead>
<tbody>
<?php
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td><a href='topic.php?id=" . $row['id'] . "'>" . $row['titre'] . "</a></td>";
echo "<td>" . $row['auteur'] . "</td>";
echo "<td>" . $row['nbr_replies'] . "</td>";
echo "<td>" . ($row['dernier_message_date'] ? $row['dernier_message_date'] : $row['creation_date']) . "</td>";
echo "</tr>";
}
} else {
echo "<tr><td colspan='4'>Aucun sujet trouvé.</td></tr>";
}
?>
</tbody>
</table>
</div>
<div>
<?php
if (isset($_SESSION["user_id"])) {
echo '<h2>Ajouter un nouveau sujet</h2>';
echo '<form method="post" action="' . htmlspecialchars($_SERVER["PHP_SELF"]) . '">';
echo '<div>';
echo '<label for="titre">Titre :</label>';
echo '<input type="text" name="titre" id="titre" value="' . $titre . '" required>';
echo '<span>' . $titre_err . '</span>';
echo '</div>';
echo '<div>';
echo '<label for="contenu">Contenu :</label>';
echo '<textarea name="contenu" id="contenu" rows="4" required>' . $contenu . '</textarea>';
echo '<span>' . $contenu_err . '</span>';
echo '</div>';
echo '<div>';
echo '<input type="submit" value="Ajouter">';
echo '</div>';
echo '</form>';
} else {
echo '<p>Connectez-vous pour ajouter un nouveau sujet.</p>';
}
?>
</div>
</body>
</html>
<?php
$mysqli->close();
?>