Bonjour,

J'ai plusieurs petits problème avec un code que je fais pour un site en cours:

Le premier est que j'aimerais pouvoir faire une insertion dans ma BDD avec un formulaire ou il est possible d'uploader une photo. Le probleme c'est que si je ne mets pas d'image l'enregistrement ne sa fait pas. Alors que je devrais pouvoir insérer les infos sans la photo.

Le deuxième petit problème est que j'aimerais éviter les doublons dans ma BDD. Eviter que le couple nom/prénom ou mail ne soit en double. Malgré des requêtes pour vérifier si les infos sont déjà dans la base, ça ne fonctionne pas.

Et enfin mon dernier souci est que les messages d'erreur lors du cheminement de toutes les requêtes ne s'affiches pas, il m'affiche juste le dernier, alors que j'ai testé avec des images trops lourdes etc...

Voilà mon code :

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
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
 
<fieldset>
		<legend> Ajout joueurs :</legend>			
			<p>Tous les champs doivent être remplis</p>
			<form method="post" enctype="multipart/form-data" name="ajout_joueurs_form" action="admin.php">
				<table border="0" name="tableau_joueurs">
					<tr>
						<td class="legende_ajout">
							Indiquez son nom :
						</td>
						<td>
							<input type="hidden" name="dispo" value="oui" />
							<input type="text" name="ajout_nom_joueurs"><br/>
						</td>
					</tr>
					<tr>
						<td class="legende_ajout">
							Indiquez son prénom :
						</td>
						<td>
							<input type="text" name="ajout_prenom_joueurs"><br/>
						</td>
					</tr>
					<tr>
						<td class="legende_ajout">
							Indiquez sa catégorie:
						</td>
						<td>
							<input type="text" name="ajout_categorie_admin"><br/>
						</td>
					</tr>
					<tr>
						<td class="legende_ajout">
							Indiquez son adresse mail :
						</td>
						<td>
							<input type="texte" name="ajout_joueur_mail">
						</td>
					</tr>
					<tr>
						<td class="legende_ajout">
							Indiquez sa date de naissance :
						</td>
						<td>
							<?php	//Code pour l'insertion de la date
							$annee = date("Y");
 
									echo '<select name="jour_joueurs">';
 
								for($i=1; $i<=31; $i++)
								{		
									echo '<option value='.$i.'>'.$i.'</option>';
								}
									echo '</select>';
 
									echo '<select name="mois_joueurs">';
 
								for($i=1; $i<=12; $i++)
								{		
									echo '<option value='.$i.'>'.$i.'</option>';
								}
									echo '</select>';
 
									echo '<select name="annee_joueurs">';
 
								for($i=$annee; $i>=1950; $i--)
								{		
									echo '<option value='.$i.'>'.$i.'</option>';
								}
									echo '</select>';
							?>							
						</td>
					</tr>
					<tr>
						<td class="ajout_photo_joueurs" colspan="2">
						<br>
						Telechargez la photo du joueur (JPG, PNG ou GIF) :
						</td>
					</tr>
					<tr>
						<td colspan="2" class="ajout_photo_joueur">
						<br>
							<input type="hidden" name="MAX_FILE_SIZE" value="10000" />
							<input type="file" name="ajout_photo_joueur">
						</td>
					</tr>
					<tr>
							<td class="bouton_ajout_admin">
							<br/><input type="submit" name="valider_joueurs" value="valider">
						</td>
						<td class="bouton_ajout_admin">
							<br/><input type="reset" value="Effacer">
						</td>
					</tr>
				</table>
			</form>
 
 
<?php
//Code pour l'insertion dans le base de données
 
if(!empty($_POST['valider_joueurs']) && !empty($_POST['ajout_nom_joueurs']) &&!empty($_POST['ajout_prenom_joueurs']) && !empty($_POST['dispo']) && !empty($_POST['ajout_categorie_admin']) && !empty($_POST['ajout_joueur_mail']) )
	{
         if(!empty($_POST['jour_joueurs']) AND !empty($_POST['mois_joueurs']) AND !empty($_POST['annee_joueurs']) AND checkdate($_POST['mois_joueurs'], $_POST['jour_joueurs'], $_POST['annee_joueurs']))
           $date = $_POST['annee_joueurs'].'-'.str_pad($_POST['mois_joueurs'], 2, 0, STR_PAD_LEFT).'-'.str_pad($_POST['jour_joueurs'], 2, 0, STR_PAD_LEFT);
         else
           $date = '0000-00-00';
 
		include('cnx.php');
 
		$nom_joueurs = mysql_real_escape_string($_POST['ajout_nom_joueurs']);
		$prenom_joueurs = mysql_real_escape_string($_POST['ajout_prenom_joueurs']);
		$categorie_joueurs = mysql_real_escape_string($_POST['ajout_categorie_admin']);
		$mail_joueurs = mysql_real_escape_string($_POST['ajout_joueur_mail']);
		$dispo_joueurs = mysql_real_escape_string($_POST['dispo']);
 
			$taille_maxi = 10000;//Code pour l'insertion de l'image
			$dossier = 'joueurs/';
			$i = rand(1, 100);
		 	$img_defaut = $dossier.$i."defaut.jpg";//Code pour l'insertion de l'image par défaut
			$fichier = basename($_FILES['ajout_photo_joueur']['name']);
			$taille = filesize ($_FILES['ajout_photo_joueur']['tmp_name']);
			$extensions = array('.png', '.PNG', '', '.gif', '.GIF', '.jpg', '.jpeg', '.JPG', '.JPEG');
			$extension = strrchr($_FILES['ajout_photo_joueur']['name'], '.');
 
			if(!empty($fichier))
			{
 
			$insertion_joueurs = "INSERT INTO ".$table_1." VALUES ('', '".$nom_joueurs."', '".$prenom_joueurs."', '".$categorie_joueurs."', '".$date."', '".$mail_joueurs."', '".$img_defaut."', '".$dispo_joueurs."') LIMIT 1";
 
						$ajout_joueurs = mysql_query($insertion_joueurs);
 
							if($ajout_joueurs)
							{
								echo " Insertion Réussie";
							}
							else
							{
								echo "L'insertion à échoué";
							}
				}
				else
				{
 
				if(!in_array($extension, $extensions))
				{
					$image_up = '';
					$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg. ';
				}
				if($taille>$taille_maxi)
				{
					$image_up = '';
					$erreur = 'Le fichier est trop gros';
				}
				if(!isset($erreur)) 
				{
 
			$fichier = strtr($fichier, 
					'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
					'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
			$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
 
				if(move_uploaded_file($_FILES['ajout_photo_joueur']['tmp_name'], $dossier . $fichier)) 
				{
					$image_up = $dossier . $fichier;
					echo 'Upload effectué avec succès !';
					$insertion_joueurs = "INSERT INTO ".$table_1." VALUES ('', '".$nom_joueurs."', '".$prenom_joueurs."', '".$categorie_joueurs."', '".$date."', '".$mail_joueurs."', '".$image_up."', '".$dispo_joueurs."')";
 
						$ajout_joueurs = mysql_query($insertion_joueurs);
 
							if($ajout_joueurs)
							{
								echo " Insertion Réussie";
							}
							else
							{
								echo "L'insertion à échoué";
							}					
 
				}
				else 
				{		
						$image_up = '';
						echo 'Echec de l\'upload !';
				}
				}
				else
				{
					echo $erreur;
				}
 
 
			}
 
	}
 
 
 
 
?>


Je vous remercie par avance de votre aide, parce que je n'en sors plus, cela fait 2 jours que je cherche mais en vain, et ça commence à me

Encore merci