Bonjour Yanis-git,
Et merci pour m'avoir accordé un peu de temps. Pour la requête mysql_query, tu parles bien du deuxième code où je m'occupe d'insérer la vidéo ? Oui effectivement c'est une boulette; cela venait d'un second test PDO que j'avais fait et je l'ai rajouté optionnellement car je n'ai pas spécialement besoin de vidéos dans le résultat single de cette rubrique là :) je vais regarder ça, il est possible que cela n'arrange rien si je ne fonctionne pas sur la même bdd ^^.
Pour le fichier, me demanderais tu si à la vue de editform.php il serait présent ?
Car sinon; dans le formulaire, oui, tous les fichiers sont présents et affichés, dans ma bdd c'est pareil. Et ils sont physiquement tous là.
C'est plus quand je cherche à éditer ces paramêtres, donc, quand le traitement se fait que je m'apperçois que ces dits-fichiers disparaissent quand les autres données sont, elles, sauvegardées et updatées.
J'espère avoir pu répondre à toutes tes questions.
Bon je reposte mon nouveau code après avoir enlevé cette boulette honteuse ^^:
<?php
$titre= isset($_POST['titre']) ? $_POST['titre']:'';
$contenu= isset($_POST['contenu']) ? $_POST['contenu']:'';
$image=isset($_FILES['image']) ? $_FILES['image']:'';
$mockup=isset($_FILES['mockup']) ? $_FILES['mockup']:'';
$lien=isset($_POST['lien']) ? $_POST['lien']:'';
$legend= isset($_POST['legend']) ? $_POST['legend']:'';
$miniature=isset($_FILES['miniature']) ? $_FILES['miniature']:'';
$domaine= isset($_POST['domaine']) ? $_POST['domaine']:'';
$quote= isset($_POST['quote']) ? $_POST['quote']:'';
$video= isset($_POST['video']) ? $_POST['video']:'';
?>
<?php
$dossier = 'uploads/';
$fichier = basename($_FILES['image']['name']);
$taille_maxi = 8000000;
$taille = filesize($_FILES['image']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['image']['name'], '.');
$fichier2 = basename($_FILES['miniature']['name']);
$taille2 = filesize($_FILES['miniature']['tmp_name']);
$extension2 = strrchr($_FILES['miniature']['name'], '.');
$fichier3 = basename($_FILES['video']['name']);
$taille3 = filesize($_FILES['video']['tmp_name']);
$extension3 = strrchr($_FILES['video']['name'], '.');
$fichier4 = basename($_FILES['mockup']['name']);
$taille4 = filesize($_FILES['mockup']['tmp_name']);
$extension4 = strrchr($_FILES['mockup']['name'], '.');
?>
<?php
if(isset($_POST['save']))
{
$id = $_POST['id'];
$titre = $_POST['titre'];
$legend = $_POST['legend'];
$contenu = $_POST['contenu'];
$lien = $_POST['lien'];
$domaine= $_POST['domaine'];
$quote= $_POST['quote'];
$fichier = $_FILES['image']['name'];
$fichier2 = $_FILES['miniature']['name'];
$fichier3 = $_FILES['video']['name'];
$fichier4 = $_FILES['mockup']['name'];
$tmp_fichier = $_FILES['image']['tmp_name'];
$tmp_fichier2 = $_FILES['miniature']['tmp_name'];
$tmp_fichier3 = $_FILES['video']['tmp_name'];
$tmp_fichier4 = $_FILES['mockup']['tmp_name'];
$taille = $_FILES['image']['size'];
$taille2 = $_FILES['miniature']['size'];
$taille3 = $_FILES['video']['size'];
$taille4 = $_FILES['mockup']['size'];
if($fichier)
{
$dossier = 'uploads/'; // uploads/
$extension = strtolower(pathinfo($fichier,PATHINFO_EXTENSION)); // avoir l'extension de l'img
$extensions = array('jpeg', 'jpg', 'png', 'gif', 'mp4'); // extensions valides
$pic = rand(1000,1000000).".".$extension;
if(in_array($extension, $extensions))
{
if($taille < 8000000)
{
unlink($dossier.$row['image']);
move_uploaded_file($tmp_fichier,$dossier.$pic1);
}
else
{
$erreur = "Désolé, le fichier est trop lourd, il ne doit pas être supérieur à 8MB";
}
}
else
{
$erreur = "Désolé, seuls les fichiers d'extensions JPG, JPEG, PNG, MP4 & GIF files sont autorisés.";
}
}
if($fichier2)
{
$dossier = 'uploads/'; // uploads/
$extension2 = strtolower(pathinfo($fichier2,PATHINFO_EXTENSION)); // avoir l'extension de l'img
$extensions = array('jpeg', 'jpg', 'png', 'gif', 'mp4'); // extensions valides
$pic2 = rand(1000,1000000).".".$extension2;
if(in_array($extension2, $extensions))
{
if($taille2 < 8000000)
{
unlink($dossier.$row['miniature']);
move_uploaded_file($tmp_fichier2,$dossier.$pic2);
}
else
{
$erreur = "Désolé, le fichier est trop lourd, il ne doit pas être supérieur à 8MB";
}
}
else
{
$erreur = "Désolé, seuls les fichiers d'extensions JPG, JPEG, PNG, MP4 & GIF files sont autorisés.";
}
}
if($fichier4)
{
$dossier = 'uploads/'; // uploads/
$extension4 = strtolower(pathinfo($fichier4,PATHINFO_EXTENSION)); // avoir l'extension de l'img
$extensions = array('jpeg', 'jpg', 'png', 'gif', 'mp4'); // extensions valides
$pic3 = rand(1000,1000000).".".$extension4;
if(in_array($extension4, $extensions))
{
if($taille4 < 8000000)
{
unlink($dossier.$row['mockup']);
move_uploaded_file($tmp_fichier4,$dossier.$pic3);
}
else
{
$erreur = "Désolé, le fichier est trop lourd, il ne doit pas être supérieur à 8MB";
}
}
else
{
$erreur = "Désolé, seuls les fichiers d'extensions JPG, JPEG, PNG, MP4 & GIF files sont autorisés.";
}
}
if($fichier3)
{
$dossier = 'uploads/'; // uploads/
$extension3 = strtolower(pathinfo($fichier3,PATHINFO_EXTENSION)); // avoir l'extension de la vidéo
$extensions = array('jpeg', 'jpg', 'png', 'gif', 'mp4'); // extensions valides
$vid = rand(1000,1000000).".".$extension3;
if(in_array($extension3, $extensions))
{
if($taille3 < 100000000000000)
{
unlink($dossier.$row['video']);
move_uploaded_file($tmp_fichier3,$dossier.$vid);
}
else
{
$erreur = "Désolé, le fichier est trop lourd, il ne doit pas être supérieur à 8MB";
}
}
else
{
$erreur = "Désolé, seuls les fichiers d'extensions JPG, JPEG, PNG, MP4 & GIF files sont autorisés.";
}
}
else
{
// s'il n'y a pas de fichiers sélectionnés, laisser tel quel
$pic = $row['image']; // ancienne image de la bdd
$pic2 = $row['miniature']; // ancienne image de la bdd
$pic3 = $row['mockup']; // ancienne image de la bdd
$vid = $row['video']; // ancienne vidéo de la bdd
}
}
// si pas d'erreurs, continue ....
if(!isset($erreur))
{
$id = $_POST['id'];
$titre = $_POST['titre'];
$legend = $_POST['legend'];
$contenu = $_POST['contenu'];
$image = $_POST['image'];
$mockup = $_POST['mockup'];
$miniature = $_POST['miniature'];
$lien = $_POST['lien'];
$domaine = $_POST['domaine'];
$quote = $_POST['quote'];
$video = $_POST['video'];
$queryupdate = "UPDATE articles SET titre = :titre, legend = :legend, contenu = :contenu, image = :image, mockup = :mockup, miniature = :miniature, lien = :lien, domaine = :domaine, quote = :quote, video = :video WHERE id = :id";
$q = $bdd->prepare($queryupdate);
$q->execute(array(
'id' => $id,
'titre' => $titre,
'legend' => $legend,
'contenu' => $contenu,
'image' => $dossier . $fichier,
'mockup' => $dossier . $fichier4,
'miniature' => $dossier . $fichier2,
'lien' => $lien,
'domaine' => $domaine,
'quote' => $quote,
'video' => $video
));
header('Location: web.php');
if($q->execute()){
echo "article modifié avec succès";
}
else{
$erreur = "Désolé, les données n'ont pas pu être mises à jour!";
}
}
?>
Toujours le même résultat; à savoir :
1) si je n'édite que les données : les données sont éditées avec succès mais mes fichiers ne restent pas tels quels comme mon code le souhaiterait, les fichiers se retrouvent supprimés y compris de ma base de données. Donc factuellement, ces lignes ne marchent pas :
// s'il n'y a pas de fichiers sélectionnés, laisser tel quel
$pic = $row['image']; // ancienne image de la bdd
$pic2 = $row['miniature']; // ancienne image de la bdd
$pic3 = $row['mockup']; // ancienne image de la bdd
$vid = $row['video']; // ancienne vidéo de la bdd
2) si je n'édite qu'un seul fichier sur les 3 requis, celui-ci sera effectivement mis à jour mais cela effacera les autres fichiers de la bdd.
nb : si je veux pouvoir garder les 3 fichiers requis intacts, je suis obligée de tous les éditer en même temps.
Mon souhait : J'aurais le contenu à éditer et j'aimerais bien pouvoir l'éditer seul, sans ques les fichiers s'en aillent. J'aimerais bien pouvoir éditer un fichier seul sans que les deux autres s'en aillent. Sinon, cela ferait comme si je rédigeais carrément un nouvel article : la perte de temps ....
Je pense qu'il y a une erreur dans mes conditions. En bougeant le '}' tout en bas de la 1ère condition save qui est la suivante :
if(isset($_POST['save']))
{
le résulat revient au même.
Je dois trouver une condition permettant l'indépendance de l'édit de l'un des fichiers sur les autres. Mais aussi une condition permettant l'indépendance des édits de données textes sur les fichiers.
Je ne sais pas si c'est clair.