# Guide de Dépannage - StayManager

## 🔧 Problèmes Courants et Solutions

### 1. Erreur 500 - Internal Server Error

**Symptômes :**
- Page blanche ou erreur 500
- Message "Internal Server Error"

**Solutions :**

#### A. Vérifier les logs d'erreur Apache
1. Ouvrir le fichier : `C:\xampp\apache\logs\error.log`
2. Chercher les dernières erreurs
3. Identifier le problème spécifique

#### B. Vérifier la configuration PHP
1. Créer un fichier `phpinfo.php` dans le dossier StayManager :
```php
<?php phpinfo(); ?>
```
2. Accéder à : `http://localhost:81/StayManager/phpinfo.php`
3. Vérifier que PHP fonctionne

#### C. Tester l'application
1. Accéder à : `http://localhost:81/StayManager/test.php`
2. Vérifier que tous les tests passent

### 2. Erreur de Connexion à la Base de Données

**Symptômes :**
- Erreur "Erreur de connexion"
- Impossible de se connecter à MySQL

**Solutions :**

#### A. Vérifier que MySQL est démarré
1. Ouvrir XAMPP Control Panel
2. Vérifier que MySQL est en vert (démarré)
3. Si non, cliquer sur "Start"

#### B. Vérifier les paramètres de connexion
1. Ouvrir `config/database.php`
2. Vérifier les paramètres :
```php
private $host = 'localhost';
private $db_name = 'staymanager';
private $username = 'root';
private $password = '';
```

#### C. Importer la base de données
1. Ouvrir phpMyAdmin : `http://localhost:81/phpmyadmin`
2. Créer une base de données nommée `staymanager`
3. Importer le fichier `database/staymanager.sql`

### 3. Problèmes de Permissions

**Symptômes :**
- Erreurs d'écriture de fichiers
- Impossible de créer des dossiers

**Solutions :**

#### A. Vérifier les permissions des dossiers
Les dossiers suivants doivent être accessibles en écriture :
- `logs/`
- `cache/`
- `assets/uploads/`
- `backups/`
- `reports/`

#### B. Créer les dossiers manuellement
```bash
mkdir logs
mkdir cache
mkdir assets/uploads
mkdir backups
mkdir reports
```

### 4. Problèmes de Port

**Symptômes :**
- Impossible d'accéder à l'application
- Erreur de connexion

**Solutions :**

#### A. Vérifier le port dans la configuration
1. Ouvrir `config/config.php`
2. Vérifier la ligne :
```php
define('APP_URL', 'http://localhost:81/StayManager');
```
3. Ajuster le port selon votre configuration XAMPP

#### B. Vérifier la configuration Apache
1. Ouvrir `C:\xampp\apache\conf\httpd.conf`
2. Chercher la ligne `Listen`
3. Vérifier le port configuré

### 5. Problèmes d'Extensions PHP

**Symptômes :**
- Erreurs "Class not found"
- Fonctionnalités manquantes

**Solutions :**

#### A. Vérifier les extensions requises
Extensions PHP nécessaires :
- `pdo`
- `pdo_mysql`
- `json`
- `mbstring`
- `openssl`

#### B. Activer les extensions
1. Ouvrir `C:\xampp\php\php.ini`
2. Décommenter les lignes :
```ini
extension=pdo
extension=pdo_mysql
extension=json
extension=mbstring
extension=openssl
```
3. Redémarrer Apache

### 6. Problèmes de Session

**Symptômes :**
- Déconnexions fréquentes
- Problèmes d'authentification

**Solutions :**

#### A. Vérifier la configuration des sessions
1. Vérifier le dossier de session PHP
2. S'assurer qu'il est accessible en écriture

#### B. Ajuster la durée de session
Dans `config/config.php` :
```php
define('SESSION_LIFETIME', 3600); // 1 heure
```

### 7. Problèmes d'Affichage

**Symptômes :**
- Page mal formatée
- CSS/JS non chargés

**Solutions :**

#### A. Vérifier les chemins
1. Vérifier que les CDN sont accessibles
2. Vérifier la connexion internet

#### B. Vérifier le fichier .htaccess
1. S'assurer que le fichier `.htaccess` existe
2. Vérifier la syntaxe

## 🚀 Procédure de Diagnostic Complète

### Étape 1 : Test de Base
1. Accéder à : `http://localhost:81/StayManager/test.php`
2. Vérifier tous les tests

### Étape 2 : Vérification de la Base de Données
1. Ouvrir phpMyAdmin
2. Vérifier que la base `staymanager` existe
3. Vérifier que les tables sont créées

### Étape 3 : Test de Connexion
1. Accéder à : `http://localhost:81/StayManager/login.php`
2. Tenter de se connecter avec :
   - Utilisateur : `admin`
   - Mot de passe : `admin123`

### Étape 4 : Vérification des Logs
1. Vérifier les logs Apache
2. Vérifier les logs PHP
3. Vérifier les logs de l'application dans `logs/`

## 📞 Support

Si les problèmes persistent :

1. **Vérifier les logs** : `C:\xampp\apache\logs\error.log`
2. **Tester avec le fichier de diagnostic** : `test.php`
3. **Vérifier la configuration XAMPP**
4. **Redémarrer les services** Apache et MySQL

## 🔄 Redémarrage Complet

En cas de problème persistant :

1. Arrêter Apache et MySQL dans XAMPP
2. Fermer XAMPP Control Panel
3. Redémarrer XAMPP Control Panel
4. Démarrer MySQL puis Apache
5. Tester l'application

---

**Note :** Ce guide couvre les problèmes les plus courants. Pour des problèmes spécifiques, vérifiez toujours les logs d'erreur en premier. 