Fix lag
This commit is contained in:
+14
-7
@@ -8,10 +8,12 @@
|
||||
require_once('../functions/databaseConnection.php');
|
||||
|
||||
// Types autorisés : liste blanche pour empêcher toute injection de nom de table
|
||||
// (le PDF est stocké dans une table associée depuis la migration Juillet 2026 (6) : on la
|
||||
// joint juste pour le nom de fichier, jamais pour son contenu binaire)
|
||||
$types = [
|
||||
'projet' => ['table' => 'projects', 'retour' => './projects.php', 'label' => 'Projet'],
|
||||
'experience' => ['table' => 'experiences', 'retour' => './xp.php', 'label' => 'Expérience'],
|
||||
'ecole' => ['table' => 'schools', 'retour' => './xp.php', 'label' => 'École'],
|
||||
'projet' => ['table' => 'projects', 'pdf' => 'project_pdfs', 'pdf_colonne' => 'project_id', 'retour' => './projects.php', 'label' => 'Projet'],
|
||||
'experience' => ['table' => 'experiences', 'pdf' => 'experience_pdfs', 'pdf_colonne' => 'experience_id', 'retour' => './xp.php', 'label' => 'Expérience'],
|
||||
'ecole' => ['table' => 'schools', 'pdf' => 'school_pdfs', 'pdf_colonne' => 'school_id', 'retour' => './xp.php', 'label' => 'École'],
|
||||
];
|
||||
|
||||
$type = $_GET['type'] ?? '';
|
||||
@@ -28,15 +30,20 @@ $infos = $types[$type];
|
||||
// Récupération de l'élément demandé
|
||||
// (pdf_data n'est volontairement pas sélectionné : le PDF est servi à part par viewPdf.php
|
||||
// dans une <iframe>, inutile de charger son contenu binaire en mémoire ici)
|
||||
$colonnesCommunes = 'id, title, status, tags, description, image_url, markdown, link_url, pdf_filename';
|
||||
$colonnesCommunes = 'e.id, e.title, e.status, e.tags, e.description, e.image_url, e.markdown, e.link_url, p.pdf_filename';
|
||||
$colonnesParType = [
|
||||
'projet' => $colonnesCommunes,
|
||||
'experience' => $colonnesCommunes . ', xptype, duration',
|
||||
'ecole' => $colonnesCommunes . ', duration',
|
||||
'experience' => $colonnesCommunes . ', e.xptype, e.duration',
|
||||
'ecole' => $colonnesCommunes . ', e.duration',
|
||||
];
|
||||
|
||||
try {
|
||||
$stmt = $dbh->prepare('SELECT ' . $colonnesParType[$type] . ' FROM `' . $infos['table'] . '` WHERE id = :id');
|
||||
$stmt = $dbh->prepare(
|
||||
'SELECT ' . $colonnesParType[$type] . '
|
||||
FROM `' . $infos['table'] . '` e
|
||||
LEFT JOIN `' . $infos['pdf'] . '` p ON p.`' . $infos['pdf_colonne'] . '` = e.id
|
||||
WHERE e.id = :id'
|
||||
);
|
||||
$stmt->bindValue(':id', (int) $id, PDO::PARAM_INT);
|
||||
$stmt->execute();
|
||||
$element = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
Reference in New Issue
Block a user