dev/api/post.php

37 lines
1.2 KiB
PHP

<?php
session_start();
require '../config/db.php';
$userId = $_SESSION['user_id'] ?? null;
if(!$userId){
echo json_encode(['success'=>false,'message'=>'Vous devez être connecté']);
exit;
}
$content = trim($_POST['content'] ?? '');
if(!$content){
echo json_encode(['success'=>false,'message'=>'Message vide']);
exit;
}
// Insertion du message
$stmt = $pdo->prepare("INSERT INTO messages (id_utilisateur, contenu, date_creation)>
$stmt->execute([$userId, $content]);
$messageId = $pdo->lastInsertId();
// Upload de fichier
if(!empty($_FILES['image']['tmp_name'])){
$file = $_FILES['image'];
$allowedTypes = ['image/png','image/jpeg'];
if(!in_array($file['type'],$allowedTypes) || $file['size']>2*1024*1024){
echo json_encode(['success'=>false,'message'=>'Fichier non valide']);
exit;
}
$data = file_get_contents($file['tmp_name']);
$base64 = 'data:'.$file['type'].';base64,'.base64_encode($data);
$stmt = $pdo->prepare("INSERT INTO fichiers (id_message, nom_fichier, chemin_fic>
$stmt->execute([$messageId, $file['name'], $base64, $file['size'], $file['type']>
}
echo json_encode(['success'=>true,'message'=>'Post publié avec succès']);