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); }