# Guide de Déploiement - Page Mes Manuscrits

## Résumé du problème
La page "Mes Manuscrits" fonctionne en local mais affiche une erreur sur le serveur distant : "Erreur lors de la récupération de vos manuscrits".

## Causes possibles identifiées
1. **Mode SQL strict** : `ONLY_FULL_GROUP_BY` activé sur le serveur distant
2. **Casse des colonnes** : Différence entre `manuscrit_Titre` et `manuscrit_titre`
3. **Chemin des fichiers** : Différence de structure entre local et distant
4. **Session non persistante** : Problème de configuration session PHP

## Solutions appliquées

### 1. Requête SQL optimisée
✅ Remplacement du `GROUP BY` problématique par une sous-requête
✅ Utilisation de `COALESCE` pour gérer les valeurs NULL
✅ Compatible avec tous les modes SQL MySQL

### 2. Gestion d'erreurs améliorée
✅ Logs détaillés à chaque étape
✅ Messages d'erreur explicites pour l'utilisateur
✅ Vérification de session et connexion DB

### 3. Noms de colonnes standardisés
✅ Utilisation systématique de la minuscule (`manuscrit_titre`, `manuscrit_etape`)

## Fichiers à transférer sur le serveur

### Fichiers modifiés
```
c:\Users\rgalo\Dropbox\_BOOKCONNECT\includes\helpers.php
c:\Users\rgalo\Dropbox\_BOOKCONNECT\public\pages\manuscrit\mes_manuscrits.php
```

### Fichiers créés (pour diagnostic)
```
c:\Users\rgalo\Dropbox\_BOOKCONNECT\public\pages\manuscrit\diagnostic_manuscrits.php
c:\Users\rgalo\Dropbox\_BOOKCONNECT\public\pages\manuscrit\test_simple.php
c:\Users\rgalo\Dropbox\_BOOKCONNECT\public\pages\manuscrit\test_mes_manuscrits.php
c:\Users\rgalo\Dropbox\_BOOKCONNECT\public\pages\manuscrit\README_DIAGNOSTIC.md
c:\Users\rgalo\Dropbox\_BOOKCONNECT\public\pages\manuscrit\DEPLOIEMENT.md
```

## Procédure de déploiement

### Étape 1 : Sauvegarde
```bash
# Sur le serveur distant, sauvegarder les fichiers actuels
cd /var/www/bookconnect.rgsuite.fr
cp includes/helpers.php includes/helpers.php.backup
cp public/pages/manuscrit/mes_manuscrits.php public/pages/manuscrit/mes_manuscrits.php.backup
```

### Étape 2 : Transfert des fichiers
Transférer via FTP/SFTP les fichiers modifiés :
- `includes/helpers.php`
- `public/pages/manuscrit/mes_manuscrits.php`
- `public/pages/manuscrit/diagnostic_manuscrits.php` (pour diagnostic)
- `public/pages/manuscrit/test_simple.php` (pour diagnostic)

### Étape 3 : Test diagnostic
1. Accéder à : `https://bookconnect.rgsuite.fr/pages/manuscrit/test_simple.php`
2. Vérifier que tous les tests sont ✅
3. Si un test échoue, noter le message d'erreur

### Étape 4 : Vérification des logs
```bash
# Sur le serveur
tail -f /var/log/apache2/error.log | grep "mes_manuscrits.php"
```

Rechercher les lignes :
- `mes_manuscrits.php - Chargement pour user_ID: X`
- `mes_manuscrits.php - Nombre de manuscrits trouvés : X`
- `mes_manuscrits.php - Nombre d'étapes trouvées : X`

### Étape 5 : Test de la page complète
1. Se connecter sur le site
2. Cliquer sur "Mes Manuscrits" dans le menu
3. Vérifier l'affichage correct

## Résolution des problèmes courants

### Problème : "Erreur lors de la récupération de vos manuscrits"

**Diagnostic :**
```bash
# Exécuter test_simple.php et noter quel test échoue
```

**Solutions selon le test qui échoue :**

#### Test 1 (Session) échoue
```php
// Vérifier config/bootstrap.php
session_start();
```

#### Test 3 (Connexion DB) échoue
```bash
# Vérifier le fichier .env
cat .env | grep DB_
```

#### Test 5 ou 6 (Requêtes) échouent
```sql
-- Vérifier la structure de la table
DESCRIBE t_manuscrits;

-- Vérifier les données
SELECT * FROM t_manuscrits LIMIT 1;
```

#### Test 7 (Requête complète) échoue
```sql
-- Tester le mode SQL
SELECT @@sql_mode;

-- Si ONLY_FULL_GROUP_BY est présent, la nouvelle requête devrait fonctionner
-- Sinon, vérifier les noms de colonnes
```

### Problème : Page blanche

**Cause probable :** Erreur PHP fatale

**Solution :**
```bash
# Activer l'affichage des erreurs temporairement
# Dans mes_manuscrits.php, ajouter en haut :
error_reporting(E_ALL);
ini_set('display_errors', 1);
```

### Problème : "Failed to open stream"

**Cause probable :** Chemin du header incorrect

**Solution :**
```php
// Vérifier que le fichier existe
ls -la public/partials/header_feed.php

// Ajuster le chemin si nécessaire dans mes_manuscrits.php
require_once dirname(__DIR__, 2) . '/partials/header_feed.php';
```

## Vérification post-déploiement

### Checklist
- [ ] La page se charge sans erreur
- [ ] Les manuscrits s'affichent correctement
- [ ] Les statistiques sont correctes
- [ ] Le workflow s'affiche
- [ ] Les boutons (Voir, Modifier, Soumettre) fonctionnent
- [ ] Le bouton "Déposer un manuscrit" fonctionne

### Tests fonctionnels
1. Créer un nouveau manuscrit
2. Vérifier qu'il apparaît dans la liste
3. Cliquer sur "Voir" → doit ouvrir suivi_manuscrit.php
4. Cliquer sur "Modifier" → doit ouvrir edit_manuscript.php
5. Vérifier les statistiques

## Rollback (en cas de problème)

```bash
# Sur le serveur, restaurer les sauvegardes
cd /var/www/bookconnect.rgsuite.fr
cp includes/helpers.php.backup includes/helpers.php
cp public/pages/manuscrit/mes_manuscrits.php.backup public/pages/manuscrit/mes_manuscrits.php

# Redémarrer Apache si nécessaire
sudo systemctl restart apache2
```

## Support et logs

### Consulter les logs applicatifs
```bash
# Logs Apache
tail -f /var/log/apache2/error.log

# Logs PHP (si configuré séparément)
tail -f /var/log/php/error.log

# Logs personnalisés (si configurés)
tail -f /var/www/bookconnect.rgsuite.fr/logs/app.log
```

### Activer le mode debug temporairement
Dans `config/bootstrap.php` ou `.env` :
```
APP_ENV=development
APP_DEBUG=true
```

⚠️ **Important** : Ne pas oublier de repasser en mode production après le diagnostic !

## Contact
En cas de problème persistant, fournir :
1. Résultat complet de `test_simple.php`
2. Résultat de `diagnostic_manuscrits.php`
3. Dernières lignes des logs d'erreur
4. Version de PHP et MySQL du serveur
