bonjour a tous,

Etant nouveau sur le forum, excusé moi d'avance si je l'utilise mal (mauvaise rubrique, code mal placé, ...).

explication :
Suite a un formulaire : http://southrider.free.fr/pg/pg-supp...nce-formulaire

On passe sur la rub=annonce-save
qui permet d'enregistrer tout cela.
tout fonctionne nikel chrome, sauf depuis que je viens de rajouter le test bete et méchant du coup : si le fichier avatar existe ou pas. Forcement en fonction j'enregistre l'image ou pas.
En gros il y a un probleme avec la ligne :

if(isset($_FILES['avatar']))

J'ai fais des milliés de tests, et rien de plus ... j'y comprend plus rien ...

Explication plus simple de mon fonctionnement :

Je teste si y a $ajout
si oui :
J'enregistre en sql

_si c'est bon :
_Je teste si faut enregistrer un fichier
___Si oui :
_____J'upload le fichier avec tout les tests qui vont bien ...
________si l'upload du fichier se passe mal j'efface les info enregistrées en SQL
___Si non :
_____L'enregistrement de l'annonce est terminée.

_si c'est pas bon :
_j'affiche l'erreur et du coup je m'occupe pas du fichier photo et tout le bordel qui va avec ...

Puis j'afffiche le lien pour revenir aux annonces.


Ce qui est décrit dessu est le fonctionnement normal de ce que je voudrai faire.
Mais il ya un probleme avec "Je teste si faut enregistrer un fichier" ...
Pourtant il me semble que le code est correct ...

Si quelqu'un a une idée, c'est la bien venu, j'ai passé tout hier sur cette erreur, j'ai plu de cheveux la ... je m'attaque au doigt ...

Merci d'avance, bisous
pascal

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
 
//enregistrement ou pas en fonction de : ajout
				//**********************************************
				if ($ajout)
				  {
 
					 // On verifie que les champs ne sont pas vides
					 if (!empty($av) && !empty($texte)  &&  !empty($nom) && !empty($region) && ($lu == oui))
 
						 {     
							 // Definit la variable de date d'aujourd'hui
								$date_auj = time();
 
							 // Calcul de la date de fin de lannonce (+15 jours)
							 	$date_fin = $date_auj + 1296000;
 
							 // Connection a la base
							 	include "inc-connect.php";
 
 
 
							 	// Execute la requete d'insertion de l'annonce
							 	//****************************************
								if (mysql_query("
								INSERT INTO tbl_annonce (av,texte,prix,nom,tel,mail,region,date_fin) 
								VALUES ('$av','$texte','$prix','$nom','$tel','$mail','$region','$date_fin')
								")=== FALSE)
									{
 
									// Fermeture de la connaction SQL
									mysql_close();
 
									//Affichage msg erreur
									echo "Attention ! Erreur d'enregistrement des informations de l'annonce.<br>";
									echo "Problème interne au niveau du site, merci de renouveller l'insertion de
									votre annonce plus tard.<br>";
									echo "Si le problème persiste, n'hésitez pas à nous contacter par mail.<br>";
 
									}
 
								else
									{
 
									//Affichage msg ok
									echo "Enregistrement des informations de l'annonce effectué avec succés.<br>";
 
									//Recupération de id correscondant à la l annonce
									$sql = "select * from tbl_annonce where date_fin='$date_fin'";
									$req = mysql_query($sql) or die ("Erreur SQL");
									$data = mysql_fetch_array($req);
									$id = $data['id'];
 
									// Fermeture de la connaction SQL
									mysql_close();
 
									//a effacer par la suite
									echo 'id : '.$id.'<br>';
									echo $_FILES['avatar']['name'];
									echo '<br>';
 
									//Traitement de la photo
									//****************************************								
									//test si une photo doit etre enregistre
									if(isset($_FILES['avatar']))
									//if(isset($avatar))
										{
 
									$dossier = '../annonce/';
 
									$fichier = basename($_FILES['avatar']['name']);
									$taille_maxi = 1048576;
									$taille = filesize($_FILES['avatar']['tmp_name']);
									$extensions = array('.jpg', '.JPG');
									$extension = strrchr($_FILES['avatar']['name'], '.'); 
 
									//Début des vérifications de sécurité...
 
									//Si l'extension n'est pas dans le tableau
									if(!in_array($extension, $extensions)) 
										{
										 $erreur = 'Attention ! Vous devez uploader une photo de 
										 type .jpg ou .JPG obligatoirement.<br>';
										}
									if($taille>$taille_maxi)
										{
										 $erreur = 'Attention ! Le fichier dépasse les 1Mo !';
										}
 
									//S'il n'y a pas d'erreur, on upload
									if(!isset($erreur))
										{
 
										 //On formate le nom du fichier ici...
										 $fichier = strtr($fichier, 
											  'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
											  'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
										 $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
 
										 //upload
										 if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier))
										 	{
											  echo 'Upload de la photo effectué avec succès.<br>';
											  echo 'Enregistrement de l\'annonce effectué avec succés.<br>';
											  echo 'L\'annonce est publiée durant 15 jours puis sera 
											  effacée automatiquement.<br>';
											  echo 'Si vous voulez modifier/supprimer des informations de votre 
											  		annonce, contactez nous par mail.<br>';
										 	}
										 else
										 	{
											  echo 'Attention ! Echec de l\'upload de la photo !<br>';
											  //effacement de la ligne id
											  include "inc-connect.php";
											  if (mysql_query("DELETE FROM tbl_annonce WHERE id='$id'")=== FALSE)
												echo "Erreur de l'effacement des informations de l'annonce !<br>";
												else
												echo "Donc effacement des informations de l'annonce.<br>";
											   mysql_close();
										 	}
 
										  }
 
 
									  else
 
									 	  {
										  //affichage de l'erreur
										  echo $erreur;
										  //effacement de la ligne id
										  include "inc-connect.php";
										  if (mysql_query("DELETE FROM tbl_annonce WHERE id='$id'")=== FALSE)
											 echo "Erreur de l'effacement des informations de l'annonce !<br>";
							  			  else
								  		  echo "Donc effacement des informations de l'annonce.<br>";
										  mysql_close();
										  }
 
									} //if de photo existe
 
 
									else //si photo existe pas
 
									{
									echo 'Enregistrement de l\'annonce effectué avec succés.<br>';
									echo 'L\'annonce est publiée durant 15 jours puis sera 
										  effacée automatiquement.<br>';
									echo 'Si vous voulez modifier/supprimer des informations de votre 
										  annonce, contactez nous par mail.<br>';
									}
 
									//****************************************
									//fin de traitement de la photo
 
 
									//Lien en bas de page vers les annonces
									echo '<br><br><br>';
									echo '<a href="pg-support.php?rub=annonce" class="texte">
									< Retour aux annonces</a>';
 
 
								} //le else de l'enregistrement SQL
								//****************************************
								// Fin de la requete d'insertion de l'annonce
 
 
 
						  } //le if de vérification des champs
 
					  else
 
						 {
							  // On affiche un message d'erreur
							  echo "Attention ! Vous n'avez pas remplis tout les champs obligatoires<br>
							  l'annonce ne s'est donc pas rajoutée !<br><br>";
 
							  //Affichage du lien retour
							  echo '<br><br><br>';
							  echo '<a href="pg-support.php?rub=annonce" class=""texte">
							  < Retour aux annonces</a>';
						 }
 
				 } //le if de ajout
				 ?>