Token de sécurité invalide.";
} else {
// Handle form submission for project creation
if(isset($_POST['name']) && isset($_POST['description']) && isset($_POST['start_date'])) {
$type = sanitizeInput($_POST['type']);
$name = sanitizeInput($_POST['name']);
$description = sanitizeInput($_POST['description']);
$start_date = sanitizeInput($_POST['start_date']);
$end_date = isset($_POST['end_date']) && !empty($_POST['end_date']) ? sanitizeInput($_POST['end_date']) : null;
$link = isset($_POST['link']) && !empty($_POST['link']) ? sanitizeInput($_POST['link']) : null;
$technologies = isset($_POST['technologies']) && !empty($_POST['technologies']) ?
array_map('trim', explode(',', sanitizeInput($_POST['technologies']))) : [];
$tags = isset($_POST['tags']) && !empty($_POST['tags']) ?
array_map('trim', explode(',', sanitizeInput($_POST['tags']))) : [];
// Validation des données
if (empty($type) || empty($name) || empty($description) || empty($start_date)) {
echo "
Tous les champs obligatoires doivent être remplis.
";
} elseif (!preg_match('/^\d{4}-\d{2}-\d{2}$/', $start_date)) {
echo "Format de date de début invalide.
";
} elseif ($end_date && !preg_match('/^\d{4}-\d{2}-\d{2}$/', $end_date)) {
echo "Format de date de fin invalide.
";
} else {
$jsonFile = '../data/projects.json';
// Read existing projects
if(file_exists($jsonFile)) {
$content = file_get_contents($jsonFile);
$projects = $content ? json_decode($content, true) : [];
} else {
$projects = [];
}
// Create new project entry
$newProject = [
'id' => uniqid(),
'type' => $type,
'name' => $name,
'description' => $description,
'link' => $link,
'technologies' => $technologies,
'start_date' => $start_date,
'end_date' => $end_date,
'created_at' => date('Y-m-d H:i:s'),
'active' => true
];
// Add new project to the list
$projects[] = $newProject;
// Save updated projects back to the JSON file
if (file_put_contents($jsonFile, json_encode($projects, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE))) {
echo "Projet '$name' créé avec succès !
";
// Reset form fields
unset($_POST);
} else {
echo "Erreur lors de la sauvegarde du projet.
";
}
}
}
}
}
?>