Envoie image base de donnée php/mysql

Résolu/Fermé
lionel - 11 mai 2009 à 09:11
 le père - 11 mai 2009 à 09:50
Bonjour,
J'ai un petit soucis j'ai créer un formulaire pour entree des information dans une base de donnee, je vous montre ci-dessous mon code php et mon formulaire mais j'ai le résultat suivant, pouvez-vous m'aider:

MAXSIZE) || ($_FILES['image2']['size'] > MAXSIZE) || ($_FILES['image3']['size'] > MAXSIZE) || ($_FILES['image4']['size'] > MAXSIZE) || ($_FILES['image5']['size'] > MAXSIZE)) echo 'Votre image est suprieure la taille maximale de '.MAXSIZE.' octets'; else { //on se connecte (remplacer les paramtres de connexion) $connexion = mysql_connect("localhost", "root", "") or exit (mysql_error()); $database = mysql_select_db("vehicules_neufs") or exit (mysql_error()); //rcupration des infos saisies $nom = mysql_escape_string($_POST['nom']); $carrosserie = mysql_escape_string($_POST['carrosserie']); $version = mysql_escape_string($_POST['version']); $description = mysql_escape_string($_POST['description']); //Lecture du fichier. On doit utiliser la fonction mysql_escape_string car les donnes binaires contiennent des caractres spciaux. $image = mysql_escape_string(file_get_contents($_FILES['image']['tmp_name'])); $image2 = mysql_escape_string(file_get_contents($_FILES['image2']['tmp_name'])); $image3 = mysql_escape_string(file_get_contents($_FILES['image3']['tmp_name'])); $image4 = mysql_escape_string(file_get_contents($_FILES['image4']['tmp_name'])); $image5 = mysql_escape_string(file_get_contents($_FILES['image5']['tmp_name'])); //Il ne reste qu' insrer tout a dans notre table. mysql_query("INSERT INTO vehicules(nom, carrosserie, version, description, image, extension, image2, extension2, image3, extension3, image4, extension4, image5, extension5) VALUES('".$nom."', '".$carrosserie."', '".version."', '".$description."', '".$image."', '".$_FILES['image']['type']."', '".$image2."', '".$_FILES['image2']['type']."', '".$image3."', '".$_FILES['image3']['type']."', '".$image4."', '".$_FILES['image4']['type']."', '".$image5."', '".$_FILES['image5']['type']."')") or exit (mysql_error()); mysql_close(); echo '
L\'insertion s\'est bien droulé !
'; } } } } ?>



et mon code:

<head>
       <title>Envoyer une image</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	   <style type="text/css">
		label {
			display:block;
			width:150px;
			float:left;
		}
	   </style>
              <!-- page de style CSS -->
		<link rel="stylesheet" media="screen" type="text/css" title="Design" href="../style/designformulaire.css" />
   </head>
   <body>
	
<?php
  if(isset($_POST['validation'])) {
	 
	 //Indique si le fichier a été téléchargé
	 if(!is_uploaded_file($_FILES['image']['tmp_name']))
		echo 'Un problme est survenu durant l opration. Veuillez ressayer !';
	 else {
		//liste des extensions possibles    
		$extensions = array('/png', '/gif', '/jpg', '/jpeg');
		
		//rcupre la chane  partir du dernier / pour connatre l'extension
		$extension = strrchr($_FILES['image']['type'], '/');
		$extension2 = strrchr($_FILES['image2']['type'], '/');
		$extension3 = strrchr($_FILES['image3']['type'], '/');
		$extension4 = strrchr($_FILES['image4']['type'], '/');
		$extension5 = strrchr($_FILES['image5']['type'], '/');
		
		//vrifie si l'extension est dans notre tableau            
		if((!in_array($extension, $extensions)) || (!in_array($extension2, $extensions)) || (!in_array($extension3, $extensions)) || (!in_array($extension4, $extensions)) || (!in_array($extension5, $extensions)))
			echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.';
		else {         

			//on dfinit la taille maximale
			define('MAXSIZE', 1000000);        
			if(($_FILES['image']['size'] > MAXSIZE) || ($_FILES['image2']['size'] > MAXSIZE) || ($_FILES['image3']['size'] > MAXSIZE) || ($_FILES['image4']['size'] > MAXSIZE) || ($_FILES['image5']['size'] > MAXSIZE))
			   echo 'Votre image est suprieure  la taille maximale de '.MAXSIZE.' octets';
			else {
				//on se connecte (remplacer les paramtres de connexion)
				$connexion = mysql_connect("localhost", "root", "") or exit (mysql_error());
				$database = mysql_select_db("vehicules_neufs") or exit (mysql_error());
				
				//rcupration des infos saisies
				$nom = mysql_escape_string($_POST['nom']);
				$carrosserie = mysql_escape_string($_POST['carrosserie']);
				$version = mysql_escape_string($_POST['version']);
				$description = mysql_escape_string($_POST['description']);
				
				//Lecture du fichier. On doit utiliser la fonction mysql_escape_string car les donnes binaires contiennent des caractres spciaux.
				$image = mysql_escape_string(file_get_contents($_FILES['image']['tmp_name']));
				$image2 = mysql_escape_string(file_get_contents($_FILES['image2']['tmp_name']));
				$image3 = mysql_escape_string(file_get_contents($_FILES['image3']['tmp_name']));
				$image4 = mysql_escape_string(file_get_contents($_FILES['image4']['tmp_name']));
				$image5 = mysql_escape_string(file_get_contents($_FILES['image5']['tmp_name']));
				
				//Il ne reste qu' insrer tout a dans notre table.
				mysql_query("INSERT INTO vehicules(nom, carrosserie, version, description, image, extension, image2, extension2, image3, extension3, image4, extension4, image5, extension5) VALUES('".$nom."', '".$carrosserie."', '".version."',  '".$description."', '".$image."', '".$_FILES['image']['type']."', '".$image2."', '".$_FILES['image2']['type']."', '".$image3."', '".$_FILES['image3']['type']."', '".$image4."', '".$_FILES['image4']['type']."', '".$image5."', '".$_FILES['image5']['type']."')") or exit (mysql_error());
				mysql_close();
				echo '<h3>L\'insertion s\'est bien droulé !</h3>';
			 }
		  }
	  }
  }
?>
	
	<!-- logo -->
	<div class="logo">
	<img src="../image/logo.png" alt="logo renault" title="logo renault" />
	</div>

	<!-- création de l'entête ( barre grise de fond) -->
	<div class="entete">
	<p>Entrer ici la liste des nouveaux véhicules<br /></p>
	</div>
   
	<h1>Formulaire de saisie:</h1>
	<form enctype="multipart/form-data" action="../php/entree_nouveau_vehicule.php" method="post">
		<p>
			<label for="nom">Nom : </label><input type="text" name="nom" id="nom" size="20" maxlength="40"/><br /><br />
            <label for="carrosserie">Carrosserie :</label>
            <select name="carrosserie">
    		<option value="france">Berline</option>
    		<option value="espagne">Break</option>
    		<option value="italie">Cabriolet</option>
            <option value="france">Citadine</option>
    		<option value="espagne">Coupé</option>
    		<option value="italie">Ludospace</option>
            <option value="france">Monospace</option>
    		<option value="espagne">Préstige</option>
    		<option value="italie">Routière</option>
            <option value="france">S.U.V</option>
    		<option value="espagne">Utilitaire</option>
		</select><br /><br />
        <label for="version">Version :</label><input type="text" name="version" size="35"/><br /><br />
	
			<label for="description">Description : </label><textarea name="description" id="description" rows="10" cols="50"></textarea><br /><br />
			<label for="image">Image obligatoire : </label><input type="file" name="image" id="image" /><br />
            <label for="image2">Image 2: </label><input type="file" name="image2" id="image2" /><br />
            <label for="image3">Image 3: </label><input type="file" name="image3" id="image3" /><br />
            <label for="image4">Image 4: </label><input type="file" name="image4" id="image4" /><br />
            <label for="image5">Image 5: </label><input type="file" name="image5" id="image5" /><br /><br /><br />
            
			<input type="submit" name="validation" id="validation" value="Valider"  />
		</p>
	</form>
  

</body>
</html>
A voir également:

5 réponses

C'est bien les erreur comme cela qui sont les plus difficiles à detecter
Non, certainement pas ! Si tu utilises un éditeur à coloration syntaxique, ça saute aux yeux !
Mais même sans coloration syntaxique, quand le message d'erreur te dit quel mot et quelle ligne, ça n'est quand même pas trop difficile.
1
yacleouf Messages postés 438 Date d'inscription mercredi 11 mars 2009 Statut Membre Dernière intervention 8 juin 2015 39
11 mai 2009 à 09:17
Salut,
est ce que tu as définit dans la table "image" le champs BLOB?
car c'est lui qui va gérer la réception de tes images.
Pour ce qui est du code, j'en ai déjà créer un mais je ne le retrouve pas....
tiens nous au courant..
0
salu,
les images sont en longblob mais je pense l'erreur est dans mon script car à partir d'un moment le code n'est pu traité et il est juste recopié sur ma page web mais je ne trouve pas pourquoi,
merci
0
Bonjour

Le code PHP de ton script n'est pas interpreté par PHP.

Quand il rencontre le <?php, c'est une balise inconnue pour lui. Elle se termine au > suivant, et tu vois la suite...
Travailles-tu en local ?
Ton fichier a-t-il bien une extension .php ?
Si tu es en local, l'ouvres-tu bien avec une adresse http://localhost/tapage.php ?
0
bonjours,
oui je travail en local et merci de répondre si vite, je vien de trouver mon erreur le seul problème est que je n'avais pas ouvert correctement mon script depuis wampserver mais maintenant que j'arive à l'éxécuter j'ai vraiment un problème,

(
Notice: Use of undefined constant version - assumed 'version' in C:\wamp\www\tests\php\entree_nouveau_vehicule.php on line 63
)


j'ai cela alors que ma variable version est déclarer et entrée dans le formulaire, sur la base de donnée c'est un varchar 40.

Merci
0
ta variable $version existe peut-être, mais relis bien ta requête, il n'y a pas $version mais version...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
à ok merci
C'est bien les erreur comme cela qui sont les plus difficiles à detecter, c'est comme les erreur quand nous devons respécter la casse on cherche longtemps pour un caractère oublier ou mal ortographié.

merci de répondre toujours aussi vite sur ce forum
0