52 lines
1.7 KiB
PHP
52 lines
1.7 KiB
PHP
<?php
|
|
// Upload / remplacement de la photo de profil du joueur "Presse-Citron" connecté.
|
|
// Le fichier est déjà redimensionné et compressé côté navigateur (voir pages/citron.php),
|
|
// mais la validation ici ne fait aucune confiance à ça : elle revérifie tout elle-même.
|
|
|
|
require_once(__DIR__ . '/../functions/security.php');
|
|
require_once('../functions/databaseConnection.php');
|
|
require_once('../functions/lemonSession.php');
|
|
require_once('../functions/avatarUpload.php');
|
|
|
|
header('Content-Type: application/json; charset=utf-8');
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
|
http_response_code(405);
|
|
echo json_encode(['error' => 'Méthode non autorisée.']);
|
|
exit;
|
|
}
|
|
|
|
requireLemonAuth();
|
|
requireCsrfToken();
|
|
|
|
$resultat = lireUploadAvatar('avatar');
|
|
|
|
if ($resultat === null) {
|
|
http_response_code(400);
|
|
echo json_encode(['error' => 'Aucune image envoyée.']);
|
|
exit;
|
|
}
|
|
|
|
if (is_string($resultat)) {
|
|
http_response_code(400);
|
|
echo json_encode(['error' => $resultat]);
|
|
exit;
|
|
}
|
|
|
|
try {
|
|
$stmt = $dbh->prepare('
|
|
INSERT INTO lemon_avatars (player_id, avatar_data, avatar_mime, updated_at)
|
|
VALUES (:id, :data, :mime, NOW())
|
|
ON DUPLICATE KEY UPDATE avatar_data = VALUES(avatar_data), avatar_mime = VALUES(avatar_mime), updated_at = NOW()
|
|
');
|
|
$stmt->bindValue(':id', (int) $_SESSION['lemon_player_id'], PDO::PARAM_INT);
|
|
$stmt->bindValue(':data', $resultat['data'], PDO::PARAM_LOB);
|
|
$stmt->bindValue(':mime', $resultat['mime'], PDO::PARAM_STR);
|
|
$stmt->execute();
|
|
|
|
echo json_encode(['ok' => true]);
|
|
} catch (PDOException $e) {
|
|
http_response_code(500);
|
|
echo json_encode(['error' => 'Erreur serveur.']);
|
|
}
|