Bonjour,

J'ai un formulaire avec titre, photo, etc que je sauvegarde en bdd pour affichage sur site plus tard, le probleme c'est que je voudrais rendre possible l'insertion en base de donnée meme si il n'y a pas de photos, j'ai donc pensé aux if/else. Probleme ca ne fonctionne pas toujours, je m'explique, quand il n'y a pas de photo je donne la possibilité de cocher une chekbox afin de ne pas utiliser le formulaire de copie de l'image sur le serveur pour eviter de planter la page de traitement. Lorsque j'ai une photo ca marche tres bien, l'erreur arrive lorsque la chekbox est coché.

voici mon code, empreinté a droite a gauche, modifier, etc :

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
mysql_connect('localhost','root','root') or die(mysql_error());
			mysql_select_db('alize_manche') or die(mysql_error());
 
			$titre=$_POST['titre'];
			$nomphoto=$_POST['nom'];
			$prearticle=nl2br(htmlspecialchars($_POST['prearticle']));
			$article=nl2br(htmlspecialchars($_POST['article']));
			$signature=$_POST['signature'];
			$jour=date(l);
			$njour=date(d);
			$mois=date(m);
			$annee=date(Y);
			$heure=date(H);
			$minute=date(i);
 
			if(!isset($_POST['none']))
				{
 
					$dossier = '../../images/bdd/temoignage/';
					$fichier = basename($_FILES['photo']['name']);
					$taille_maxi = 100000;
					$taille = filesize($_FILES['photo']['tmp_name']);
					if($taille>$taille_maxi)
					{
						 $erreur = 'Le fichier est trop gros';
					}
					if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
					{
						 //On formate le nom du fichier ici...
						 $fichier = strtr($fichier, 
							  'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
							  'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
						 $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
						 if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
						 {
							  echo 'Formulaire traité avec succès, cliquez içi pour revenir au site "<a href="../../accueil.php">accueil</a> ou içi "<a href="./index.php">index administration</a> pour ajouter ou supprimer d&prime;autres articles.';
						 }
						 else //Sinon (la fonction renvoie FALSE).
						 {
							  echo 'Echec de l\'upload !';
						 }
					}
					else
					{
						 echo $erreur;
					}		
 
 
				mysql_query("INSERT INTO temoignage VALUE ('','$titre','$fichier','$nomphoto','$prearticle','$article','$signature')") or die(mysql_error());
				mysql_query("UPDATE maj SET jour='$jour', njour='$njour', mois='$mois', annee='$annee', heure='$heure', minute='$minute' WHERE id='1'");
				}
				else
				{
 
				mysql_query("INSERT INTO temoignage VALUE ('','$titre','','','$prearticle','$article','$signature')") or die(mysql_error());
				mysql_query("UPDATE maj SET jour='$jour', njour='$njour', mois='$mois', annee='$annee', heure='$heure', minute='$minute' WHERE id='1'");
				}
si vous pouviez m'aider a resoudre ce tout 'tit probleme, je vous en serais tres reconnaissant, j'utilise tres peu les if/else, et pour cause habituellement je code surtout en html dans lequel j'insere parfois du php.

Merci d'avance