create($contenu);
}
else
{
$Article->fileCode = $_SESSION['target']; // erreur ici?
$Article->update($contenu);
}
}
// page discographie
else if($page == 'discographie')
{
$Album = new Album($page);
// on retrouve les données si nécessaire
if(isset($_SESSION['target']) && $_SESSION['target'] != '')
{
$Album->fileCode = $_SESSION['target'];
$Album->readOne();
}
$nouveauTitre = Security::secureString($_POST['titre']);
$nouvelleAnnee = Security::secureString($_POST['annee']);
if(!empty($_FILES['upload']['name']))
{
$nouvellePochette = $_FILES['upload']['name'];
$nouvellePochetteMini = pathinfo($_FILES['upload']['name'], PATHINFO_FILENAME) . '-mini.' . pathinfo($_FILES['upload']['name'], PATHINFO_EXTENSION);
}
else
{
$nouvellePochette = '';
$nouvellePochetteMini = '';
}
//var_dump($nouvellePochetteMini); die();
// enregistrement nouvel album
if(!isset($_SESSION['target']) || $_SESSION['target'] == '')
{
// page disco
$Album->createVignette($nouveauTitre, $nouvelleAnnee, $nouvellePochette, $nouvellePochetteMini);
// page de l'album
if(!empty($_POST['contenu']))
{
$Album->format = 'html';
$Album->create($contenu);
}
}
// modification
else
{
$Album->albumCode = $_SESSION['target'];
// page disco
$Album->format = 'json';
$Album->updateVignetteJSON($nouveauTitre, $nouvelleAnnee, $nouvellePochette, $nouvellePochetteMini);
// page de l'album
// si $contenu est vide, le fichier est supprimé
$Album->format = 'html';
$Album->update($contenu);
}
}
// nettoyage
unset($_SESSION['target']);
unset($_GET['action']);
unset($_POST['contenu']);
header('Location: index.php?page=' . $_GET['page']);
exit();
}
// lien sans http://
// si une adresse est de type "domaine.fr" sans le http:// devant, le comportement des navigateurs est de rechercher un fichier comme si mon adresse commençait par file://
// tomber ainsi sur une page d'erreur est parfaitement déroutant
// une erreur 404 est détectée et le visiteur redirigé, mais ça ne règle pas le problème
// 2ème problème, en train d'écrire un article, l'utilisateur clique sur ce lien qu'il vient de créer et qui apparaît dans l'infobulle, un nouvelle onglet apparaît
// solution: fermer ce nouvel onglet avec echo '';
// le .htaccess doit pour ça détecter que l'erreur 404 est particulière
function fixLinks($data)
{
// regex pour détecter les balises , analyser les liens à l'interieur et les modifier si nécessaire
$pattern = '#.*#';
if(preg_match($pattern, $data))
{}
//$remplacement = 'http://$0';
//$data = preg_replace($pattern, $remplacement, $data);
// contrairement à ce qui dit la doc
// https://www.php.net/manual/fr/filter.filters.validate.php
// une adresse du type "domaine.fr" ne passe pas le filtre
// il renvoie false, ce qui nous arrange ici!
//var_dump(filter_var($link, FILTER_VALIDATE_URL));
return($data);
}