prepare('INSERT INTO projects (title, status, tags, description, image_url, markdown, link_url) VALUES (:title, :status, :tags, :description, :image_url, :markdown, :link_url)'); // On execute la requete préparée $stmt->bindValue(':title', $title, PDO::PARAM_STR); $stmt->bindValue(':status', $status, PDO::PARAM_STR); $stmt->bindValue(':tags', $tags, PDO::PARAM_STR); $stmt->bindValue(':description', $description, PDO::PARAM_STR); $stmt->bindValue(':image_url', $image_url, PDO::PARAM_STR); $stmt->bindValue(':markdown', $markdown, PDO::PARAM_STR); $stmt->bindValue(':link_url', $link_url, PDO::PARAM_STR); $stmt->execute(); // Si un PDF a été envoyé, on l'enregistre à part dans project_pdfs if ($pdfData !== null) { $nouvelId = (int) $dbh->lastInsertId(); $stmtPdf = $dbh->prepare('INSERT INTO project_pdfs (project_id, pdf_filename, pdf_data) VALUES (:project_id, :pdf_filename, :pdf_data)'); $stmtPdf->bindValue(':project_id', $nouvelId, PDO::PARAM_INT); $stmtPdf->bindValue(':pdf_filename', $pdfFilename, PDO::PARAM_STR); $stmtPdf->bindValue(':pdf_data', $pdfData, PDO::PARAM_LOB); $stmtPdf->execute(); } // Log Discord sendLog("Ajout du projet : " . $title); // Redirection vers projects.php ds que la requete est executée header('Location: ../pages/projects.php'); exit; } catch (PDOException $e) { // En cas d'erreur : echo "Erreur pendant l'ajout du projet: " . $e->getMessage(); exit; } } else { echo "Veuillez remplir tous les champs obligatoires."; exit; } } else { // Si on y accède de façon peu légitime sans requête POST on refuse header('Location: ../pages/projects.php'); exit; } ?>