Rechercher : dans
Par :

Savoir si un champs est vide

Dernière réponse le 19 jun 2009 à 19:27:33 dypsis66, le 19 jun 2009 à 14:16:44 
 Signaler ce message aux modérateurs

Bonjour,
Pour que l'admin de mon site puisse modifier/ajouter des images sur son site j'ai mis ceci dans mon formulaire:
<input type="file" name="fichier"/>
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.
Configuration: Windows Vista
Safari 530.5

Meilleures réponses pour « Savoir si un champs est vide » dans :
[Vidéo] Vidéo à l'envers Voir*Si les vidéos lues par Windows sont à l'envers, il s'agit probablement d'un problème de codecs : Lister les codecs dans Ajout/Suppression de programmes. Supprimer les codecs vidéos un par un, puis les réinstaller. Il peut également s'agir d'un...

1

cedrad33, le 19 jun 2009 à 14:40:44

Au debut tu teste :

if ($_POST["NomDeTonBoutonParcourir"] = "") {
echo "il faut choisir un fichier";
}
else
{
ton code
}

Prêt à vous aider quand je suis la et quand je le peux :-)

Répondre à cedrad33

2

dypsis66, le 19 jun 2009 à 17:15:40

Echo "il faut choisir un fichier";
ils ne sont pas obligés de choisir un fichier

Répondre à dypsis66

3

aymbob, le 19 jun 2009 à 17:19:37

Moi j'aurais peut etre utilisé un isset en php pour dire que si ''...'' existe donc tu fais ''...''

Répondre à aymbob

4

dypsis66, le 19 jun 2009 à 17:20:52

Dans ce style la?
if (!isset($_FILES['NomDeMonBouton']['name'])) ;{

Répondre à dypsis66

5

aymbob, le 19 jun 2009 à 17:26:05

Comme sa :

if (isset(.......)) {
//instruction
}

else {
//instruction
}



je ne suis pas sur jai pas les ocurs sous les yeux

Répondre à aymbob

6

dypsis66, le 19 jun 2009 à 17:45:27

J'ai toute une ligne de if mais jamais de else, voila pour le moment le code que j'ai mis mais sa ne marche pas:

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.

Répondre à dypsis66

7

aymbob, le 19 jun 2009 à 17:57:47

Essaye peut etre avec un truc du genre :
if(................ != Null)

Répondre à aymbob

8

dypsis66, le 19 jun 2009 à 18:04:53

Fonctionne pas :(

Répondre à dypsis66

9

aymbob, le 19 jun 2009 à 18:15:48

Dsl je ne peux pas trop t'aider...
excuses

bonne chance

Répondre à aymbob

10

dypsis66, le 19 jun 2009 à 18:53:09

Merci ^^ j'ai déja trouvé une erreur dans mon code:
if (isset($_POST['fichier'])) ;{ //Si l'admin a choisit un fichier
Le ";" a rien à faire là. Après j'ai trouvé ce code dans deux tuto:
$img = $_FILES['fichier']['name'];

if(isset($img)) {
enregistrement de l'image}
Et sa ne fonctionne toujour pas! c'est énorme!
et quand je met echo $img,
si il y a une image j'ai '1',
et si il n'y a pas d'image j'ai... '1' !

Répondre à dypsis66

11

 dypsis66, le 19 jun 2009 à 19:27:33

Solution trouvée!
$img = empty($_FILES ['fichier'] ['name']) ;

if($img!='1') {

Répondre à dypsis66