Salut tout le monde .
Je suis actuellement en train de créer un site avec une partie administration ou on peut ajouter des données dans une base ainsi qu'une photo.
L'ajout fonctionne bien, l'upload aussi sauf que pour valider mon formulaire, je suis obligé d'uploader une photo sinon j'ai une erreur. Je voudrai donc rendre l'upload facultatif.

Autre problème, quand je fais une modification d'un article, au lieu de me faire un update de la base, il me fait un insert.

Je vous met mes différents codes.

Pour la partie upload d'image, c'est un pote qui me l'a faite donc je sais pas comment le rendre facultatif.

Merci d'avance

index_occasion.php

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
 
<div id="back-office">
			<h2><a href="occasion_modif.php">Ajouter un moteur occasion</a></h2>
			<?php 
				include ("../connexion.php");
 
				if (isset($_GET['supprimer_occasion'])) // Si on demande de supprimer un article
				{
    				// Alors on supprime l'aticle 
    				// On protège la variable "id_occasion"
    				$_GET['supprimer_occasion'] = addslashes($_GET['supprimer_occasion']);
    				mysql_query('DELETE FROM occasion WHERE id=\'' . $_GET['supprimer_occasion'] . '\'');
				}
			?>
 
			<table>
				<tr class="title">
					<th>Modifier</th>
					<th>Supprimer</th>
					<th>Marque</th>
					<th>Modèle</th>
					<th>Prix</th>
					<th>Date</th>
				</tr>
				<?php
					$retour = mysql_query('SELECT * FROM occasion ORDER BY id DESC');
					while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les articles
					{
						echo '<tr>';
						echo '<td><a href="occasion_modif.php?marque='.$donnees['marque'].'&modele='.$donnees['modele'].'&cv='.$donnees['cv'].'&trs='.$donnees['trs'].'&ir='.$donnees['ir'].'&travaux='.$donnees['travaux'].'&fichier='.$donnees['fichier'].'&prix='.$donnees['prix'].'">modifier</a></td>';
						echo '<td><a href="index_occasion.php?supprimer_occasion=' . $donnees['id'] . '">Supprimer</a></td>';
						echo '<td>'.stripslashes($donnees['marque']).'</td>';
						echo '<td>'.stripslashes($donnees['modele']).'</td>';
						echo '<td>'.number_format($donnees['prix'],0, '.', ' ').'?</td>';
						echo '<td>'.date('d/m/Y', $donnees['timestamp']).'</td>';
						echo '</tr>';
					} // Fin de la boucle qui liste les articles
				?>
			</table>
		</div>
	</div>
occasion_modif.php
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
 
<h3><a href="index_occasion.php">Retour à la liste des moteurs occasions</a></h3>
			<?php 
				include ("../connexion.php");
 
			?>
			<form action="occasion_upload.php" method="post" ENCTYPE="multipart/form-data">
				<LABEL for="marque">Marque : </LABEL>
					<input type="text" size="30" name="marque" value="<?php echo $_GET['marque']; ?>" /><br/>
				<LABEL for="modele">Modele : </LABEL>
					<input type="text" size="30" name="modele" value="<?php echo $_GET['modele']; ?>" /><br/>
				<LABEL for="cv">CV : </LABEL>
					<input type="number" size="10" name="cv" value="<?php echo $_GET['cv']; ?>" /><br/>
				<LABEL for="tours">Tours/min : </LABEL>
					<input type="number" size="10" name="trs" value="<?php echo $_GET['trs']; ?>" /><br/>
				<LABEL for="ir">Inverseur/reducteur : </LABEL>
					<select name="ir">'; 
						<option value="avec">Avec</option>
						<option value="sans">Sans</option>
					</select><br/>
 
					<input type="textarea" id="FCKeditor1" name="travaux" style="display:none" value="<?php echo $travaux; ?>" />
					<input type="hidden" id="FCKeditor1___Config" value="<?php echo $travaux; ?>" style="display:none" />
					<iframe id="FCKeditor1___Frame" src="fckeditor/editor/fckeditor.html?InstanceName=FCKeditor1&amp;Toolbar=Default" width="80%" height="400" frameborder="0" scrolling="no"></iframe><br/>
				<LABEL for="prix">Prix : </LABEL>
					<input type="number" size="10" name="prix" value="<?php echo $prix; ?>" /><br/>
				<LABEL for="photos">Photos : </LABEL>
					<input type="hidden" name="MAX_FILE_SIZE" VALUE="10000000">
					<input type="file" name="filename"><br/>
				<input type="submit" value="uploader">
			</form>
		</div>
occasion_upload.php
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
 
<h3><a href="index_occasion.php">Retour à la liste des moteurs occasions</a></h3>
			<?php 
				include ("../connexion.php");
 
			## Recuperation des variables du formulaire #############################################
			$marque = $_REQUEST['marque'];
			$modele = $_REQUEST['modele'];
			$tours = $_REQUEST['trs'];
			$cv = $_REQUEST['cv'];
			$ir = $_REQUEST['ir'];
			$travaux = $_REQUEST['travaux'];
			$fichier = $_REQUEST['fichier'];
			$prix = $_REQUEST['prix'];
			#######################################################################
 
			//-----------------------------------------------------
			// Vérification 1 : ajoutez nvx article
			//-----------------------------------------------------
			if (isset($_POST['marque']) OR isset($_POST['modele']) OR isset($_POST['cv']) OR isset($_POST['trs']) OR isset($_POST['ir']) OR isset($_POST['travaux']) OR isset($_POST['prix']))
			{						
 
				// definition d'un identifiant unique en fonction de la date du jour au format JJMMAAHHMMSS
				$date = date('dmyHis', mktime(date('H'),date('i'),date('s'),date('m'),date('d'),date('Y')));
 
				$dossier = 'img_upload/'; // dossier dans lequel on importe l'image
				$fichier = basename($_FILES['filename']['name']); //recuperation du nom du fichier
				$taille_maxi = 10000000; //definition taille maxi en octets :  ici 10 000 000 = 10Mo
				$taille = filesize($_FILES['filename']['tmp_name']); // recuperation de la taille du fichier
				$extensions = array('.jpg', '.png', '.jpeg', '.gif'); // parametrage des extensions autorisées
				$extension = strrchr($_FILES['filename']['name'],'.'); // onrécupere l'extension
 
				if(!in_array($extension, $extensions)){
					$erreur = 'Vous devez uploader un fichier de type image(jpg, jpeg, png, gif).'; 				}
				if($taille>$taille_maxi){
					$erreur = 'Le fichier est trop gros'; //affiche ce texte si le fichier depasse la taille (en poids) autorisés
				}
				if(!isset($erreur)){
					$fichier = strtr($fichier,
							'ÀÄÂçÊÈËÎÏÌÔÖÒÛÜÙÔÖÒâäàêëèûüùîìïôòöÿ', //caractere a remplacer
							'AAAcEEEIIIOOOUUUoooaaaeeeuuuiiioooy'); // caractere qui les remplace, inscrit que dans le meme ordre qu'il doivent remplacer
					$fichier = preg_replace('/([^.a-z0-9]+)/i','-',$fichier); // on remplace tous les caractere bizarre
 
					if(file_exists('img_upload/'.$fichier)){
						echo 'L\'upload a deja ete effectué, vous ne pouvez pas réimporter aujourd\'hui.<br/>'; // verifie si un fichier du meme nom existe
						echo 'Si ce n\'est pas le cas vous devez changer le nom de votre fichier.<br/>';
 
					}else{
						if(move_uploaded_file($_FILES['filename']['tmp_name'],$dossier . $fichier)){
 
						//rename('img_upload/'.$fichier, 'img_upload/'.$date.$extension); // possibilité de renomer le fichier
 
						echo 'Upload effectué avec succes.<br/>';
 
						## Affichage du contenu du formulaire ##################################"
						echo '<br/><br/>';
						echo 'Le contenu du formulaire est le suivant : <br/>';
						echo 'Marque : '.$marque.'<br/>';
						echo 'Modele : '.$modele.'<br/>';
						echo 'Cv : '.$cv.'<br/>';
						echo 'Inverseur/reducteur : '.$ir.'<br/>';
						echo 'Tours/min : '.$tours.'<br/>';
						echo 'Prix : '.$prix.'<br/>';
						echo 'L\'image que vous avez choisi est la suivante : <br/>';
						echo '<img src="img_upload/'.$fichier.'">';
						###########################################################
						}else{
							echo 'Echec de l\'upload.<br/>';
						}
					}
				}else{
					echo $erreur;
				}
 
				$marque = addslashes($_POST['marque']);
    			$modele = addslashes($_POST['modele']);
    			$cv = addslashes($_POST['cv']);
    			$trs = addslashes($_POST['trs']);
    			$ir = addslashes($_POST['ir']);
    			$travaux = addslashes($_POST['travaux']);
    			$prix = addslashes($_POST['prix']);
 
    			 // On vérifie si c'est une modification d'article ou pas
    			if ($_POST['id_occasion'] == 0){
 
    				// definition de la date et heure courante grace au timestamp unix
    				$current_time = date("d/m/Y H:i:s", mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y")));
 
        			// Ce n'est pas une modification, on crée une nouvelle entrée dans la table
        			$sql_insert = "INSERT INTO occasion VALUES('','$marque', '$modele', '$cv', '$trs', '$ir', '$travaux', '$fichier', '$prix', '$current_time')";
        			$result_insert = mysql_query($sql_insert);
    			}else{
        			// On protège la variable "id_occasion" 
        			$posted_id = addslashes($_POST['id_occasion']);
        			// C'est une modification, on met juste à jour les champs
        			$sql_update = "UPDATE occasion SET marque='$marque', modele='$modele', cv='$cv', trs='$trs', ir='$ir', travaux='$travaux', fichier='$fichier', prix='$prix' WHERE id='$posted_id'";
        			$result_update = mysql_query($sql_update);
    			}
			}else{
				echo 'Vous n\'avez pas remplit tous les champs, veuillez les remplir';
			}
			?>
		</div>