Savoir si un champs file est vide

dypsis66 Messages postés 79 Date d'inscription mardi 2 juin 2009 Statut Membre Dernière intervention 15 janvier 2012 - 19 juin 2009 à 18:13
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009 - 20 juin 2009 à 12:14
Bonjour,
Pour que l'admin de mon site puisse modifier/ajouter des images sur son site j'ai mis ceci dans mon formulaire:

ce que j'aimerai c'est vérifier si un fichier à été choisi, si oui, je l'enregistre dans un dossier de mon serveur et j'enregistre son nom dans une BDD.
Si non: je voudrai qu'il ne change rien.
Problème: si l'admin décide de ne pas modifier l'image, et enregistre ces modification, l'image est automatiquement effacée.
Ce qui est normal vu mon code:
// récupère le nom du fichier
$nom_fichier = $_FILES['fichier']['name'];
// récupère le fichier stocké temporairement sur le serveur
$tmp_fichier = $_FILES['fichier']['tmp_name'];
// indique l'emplacement et le nom du fichier
$nom_destination = "../images/$nom_fichier";
// déplace le fichier du dossier temporaire du serveur vers le répertoire de destination
move_uploaded_file($tmp_fichier,$nom_destination);
$Nom_Image="$nom_fichier";

if ($donnee ["Image"] != $Nom_Image) {
$upmodif = "UPDATE titre SET Image='$Nom_Image'
WHERE ID_Titre=$ID
AND ID_Page2=$page";
// Si la valeur est différente on exécute la requête de mise à jour
$editproduct = mysql_query($upmodif) or die(mysql_error());
}

Et j'aimerai entourer ce code juste au dessus par un "if" pour qu'il s'exécute SEULEMENT quand un fichier à été choisit.

if (isset($_POST['fichier'])) ;{ //Si l'admin a choisit un fichier
(j'ai essayer aussi avec $_FILES...)

// récupère le nom du fichier
$nom_fichier = $_FILES['fichier']['name'];
// récupère le fichier stocké temporairement sur le serveur
$tmp_fichier = $_FILES['fichier']['tmp_name'];
// indique l'emplacement et le nom du fichier
$nom_destination = "../images/$nom_fichier";
// déplace le fichier du dossier temporaire du serveur vers le répertoire de destination
move_uploaded_file($tmp_fichier,$nom_destination);
$Nom_Image="$nom_fichier";

if ($donnee ["Image"] != $Nom_Image) { //comparaison de la valeur saisie avec celle contenu dans la bdd
$upmodif = "UPDATE titre SET Image='$Nom_Image'
WHERE ID_Titre=$ID
AND ID_Page2=$page";
// Si la valeur est différente on exécute la requête de mise à jour
$editproduct = mysql_query($upmodif) or die(mysql_error());
}
}


//Sinon on vérifie les autres champs

Donc il m'enregistre tout le temps la valeur de mon champs file. Alors que je désir qui l'enregistre seulement quand il n'est pas vide et que le fichier est différent de celui déjà contenu dans la base(sa, sa fonctionne impect). C'est mon premier IF qui ne fonctionne pas.

Si quelqu'un peu aider, j'y suis depuis 10h ce matin et je trouve rien sur internet.
J'ai du testé 15 if différent et au moins 3 fonctions php. Pourtant sa paraît si simple...

1 réponse

cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
20 juin 2009 à 12:14
Impossible à lire, désolé...
0
Rejoignez-nous