TP Web 2
TP Web 2
1. Structure du projet
3. register.php (inscription)
<?php
require 'config.php';
<form method="post">
<h2>Inscription</h2>
<input name="username" required>
<input name="password" type="password" required>
<button type="submit">S'inscrire</button>
</form>
4. login.php (connexion)
<?php
session_start();
require 'config.php';
<form method="post">
<h2>Connexion</h2>
<input name="username" required>
<input name="password" type="password" required>
<button type="submit">Se connecter</button>
</form>
5. config.php
<?php
$pdo = new PDO("mysql:host=localhost;dbname=mini_chat;charset=utf8", 'root', '');
?>
6. logout.php
<?php
session_start();
session_destroy();
header('Location: login.php');
?>
7. chat.php (interface principale)
<?php
session_start();
require 'config.php';
if (!isset($_SESSION['user'])) {
header('Location: login.php');
exit;
}
$user = $_SESSION['user'];
// GESTION AJOUT/MODIF/SUPP
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST['add'])) {
$stmt = $pdo->prepare("INSERT INTO messages (user_id, message) VALUES (?, ?)");
$stmt->execute([$user['id'], $_POST['message']]);
}
if (isset($_POST['edit'])) {
$stmt = $pdo->prepare("UPDATE messages SET message=? WHERE id=? AND
user_id=?");
$stmt->execute([$_POST['message'], $_POST['msg_id'], $user['id']]);
}
if (isset($_POST['delete'])) {
$stmt = $pdo->prepare("DELETE FROM messages WHERE id=? AND user_id=?");
$stmt->execute([$_POST['msg_id'], $user['id']]);
}
}
<form method="post">
<input name="message" placeholder="Votre message" required>
<button type="submit" name="add">Envoyer</button>
</form>
<hr>
<?php foreach ($messages as $msg): ?>
<div>
<strong><?= htmlspecialchars($msg['username']) ?> :</strong>
<?php if ($msg['user_id'] === $user['id']): ?>
<form method="post" style="display:inline;">
<input type="hidden" name="msg_id" value="<?= $msg['id'] ?>">
<input name="message" value="<?= htmlspecialchars($msg['message']) ?>">
<button type="submit" name="edit">Modifier</button>
<button type="submit" name="delete" onclick="return confirm('Supprimer
?')">Supprimer</button>
</form>
<?php else: ?>
<?= htmlspecialchars($msg['message']) ?>
<?php endif; ?>
<small><?= $msg['created_at'] ?></small>
</div>
<?php endforeach; ?>
8. style.css (simple)
body { font-family: sans-serif; margin: 20px; background: #f4f4f4; }
form input, form button { margin: 5px; padding: 5px; }
div { margin-bottom: 10px; }
hr { margin: 20px 0; }