# WaybackMeme — projet scolaire

Archive façon Wayback Machine des memes et trends internet, présentée en fil
façon Twitter/Reddit, classée par année. Deux sites séparés comme demandé :
`front/` (public) et `admin/` (back-office).

## Arborescence

```
wayback-meme/
├── front/                  # site public
│   ├── index.php           # page d'accueil : fil chronologique + recherche + filtres par année
│   ├── submit.php          # formulaire public de proposition de meme (POST + upload)
│   ├── fiche.php           # détail d'un meme + vrais commentaires (POST)
│   ├── like.php            # traite le clic sur le coeur (+1 like) puis redirige
│   ├── includes/
│   │   ├── header.php
│   │   ├── footer.php
│   │   └── data.php        # accès aux données (JSON pour l'instant, à remplacer par SQL)
│   ├── data/memes.json      # "fausse BDD" de démo
│   ├── uploads/             # images envoyées par les visiteurs et l'admin
│   └── assets/css/style.css
│
├── admin/                  # back-office (site séparé)
│   ├── login.php           # connexion (identifiants de démo : admin / wayback2024)
│   ├── logout.php
│   ├── index.php           # dashboard : stats + liste + validation/suppression
│   ├── ajouter.php         # ajout direct d'un meme (déjà publié)
│   ├── infos.php           # page de diag technique ($_SERVER, $_ENV, $_REQUEST)
│   ├── includes/
│   │   ├── auth.php        # comptes admin + protection des pages
│   │   └── data.php        # pont vers front/includes/data.php (données partagées)
│   └── assets/css/admin.css
│
└── README.md
```

## Superglobales utilisées (cahier des charges)

| Superglobale | Où | Pour quoi |
|---|---|---|
| `$_GET` | `front/index.php`, `front/like.php`, `front/fiche.php` | recherche (`?q=`), filtre par année (`?annee=`), id du meme |
| `$_POST` | `front/submit.php`, `front/fiche.php`, `admin/login.php`, `admin/ajouter.php` | formulaires (commentaires inclus) |
| `$_FILES` | `front/submit.php`, `admin/ajouter.php` | upload d'image de meme |
| `$_SESSION` | `admin/includes/auth.php`, `front/submit.php` | état de connexion admin, message flash |
| `$_COOKIE` | `front/index.php`, `admin/login.php` | dernière année consultée, pseudo admin mémorisé |
| `$_SERVER` | `front/includes/footer.php`, `admin/index.php`, `admin/infos.php` | infos techniques (IP, méthode HTTP, version PHP...) |
| `$_REQUEST` | `admin/infos.php` | démo GET+POST fusionnés |
| `$_ENV` | `admin/infos.php` | affiché avec explication s'il est vide (normal selon `variables_order`) |

## Déploiement sur le VPS

1. Déposer **`front/` et `admin/` côte à côte** dans le même dossier parent
   (ex. `/var/www/wayback-meme/front` et `/var/www/wayback-meme/admin`) —
   `admin/includes/data.php` suppose cet emplacement relatif pour lire les
   mêmes données que le front.
2. Configurer deux vhosts Apache/Nginx (ou deux sous-dossiers accessibles),
   par exemple :
   - `front.tondomaine.fr` → pointe sur `front/`
   - `admin.tondomaine.fr` → pointe sur `admin/`
3. Donner les droits d'écriture au serveur web sur :
   - `front/data/memes.json`
   - `front/uploads/`
4. PHP 7.4+ suffit, aucune dépendance externe (pas de Composer, pas de framework).
5. Changer le mot de passe de démo dans `admin/includes/auth.php` avant toute
   mise en ligne réelle.

## Pour l'équipier qui gère la BDD

Toute la logique de données passe par les fonctions de `front/includes/data.php`
(`charger_memes()`, `ajouter_meme()`, `supprimer_meme()`, `sauvegarder_memes()`).
Il suffit de réécrire l'intérieur de ces fonctions avec du PDO/mysqli — le reste
du code (front ET admin) n'a pas besoin de changer puisqu'il n'appelle que ces
fonctions.

## Reste à faire côté DA

- Remplacer `.logo-placeholder` (le rond bleu "WM") par le vrai logo dessiné à
  la main, dans `front/includes/header.php` et `admin` si besoin.
- Les cases `.visuel-meme` sont des placeholders à motif — à remplacer par de
  vraies images une fois les memes/captures récupérés.
