Page 1 sur 1

probleme d'insersion d'image

Posté : 27 juil. 2013, 21:23
par msi79
bonjour a tous . je voudrais insérer des images dans ma base de données en binaire (je sais que c'est pas la bonne solution mais le client l'exige)
je reçois l'erreur suivante
alors je voudrez qu'on m aide . merci d'avance
voici mon code
<?php
//include('functions/declarant.func.php');
include('body/header.php');
include('body/menu.php');
?>
<?php

if(isset($_GET['id'])) $id = urldecode($_GET['id']);

if(isset($_POST['bouton_submit'])&& !empty($_POST['nbre'])){
 $cat = strip_tags(trim($_POST['cat'])); 
  
    for($i = 1; $i <= $_POST['nbre']; $i++){

if(isset($_FILES['image'.$i]) && $_FILES['image'.$i]['error'] == 0 && isset($_POST['nbre'])){

	 //Indique si le fichier a été téléchargé
	 if(!is_uploaded_file($_FILES['image'.$i]['tmp_name']))
		echo 'Un problème est survenu durant l opération. Veuillez réessayer !';
	 else {
		//liste des extensions possibles    
		$extensions = array('/png', '/gif', '/jpg', '/jpeg');
 
		//récupère la chaîne à partir du dernier / pour connaître l'extension
		$extension = strrchr($_FILES['image'.$i]['type'], '/');
 
		//vérifie si l'extension est dans notre tableau            <em></em>
		if(!in_array($extension, $extensions))
			echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.';
		else {         
 
			//on définit la taille maximale
			define('MAXSIZE', 300000);        
			if($_FILES['image'.$i]['size'] > MAXSIZE)
			   echo 'Votre image est supérieure à la taille maximale de '.MAXSIZE.' octets';
			else {
				//connexion à la base de données
				try {
					$bdd = new PDO('mysql:host=localhost;dbname=---------------------', 'root', '');
				} catch (Exception $e) {
					exit('Erreur : ' . $e->getMessage());
				}
 
				//Lecture du fichier
				$image = file_get_contents($_FILES['image'.$i]['tmp_name']);
 
				//mysql_query("INSERT INTO image(id_img,img, extension ,id_victime) VALUES('','".$image."', '".$extension."','".$id."')") or die(mysql_error());
                    $sql= "INSERT INTO image(id_img,img, extension ,id_victime) VALUES ('','$image','$extension','$id')";
		$result = mysql_query($sql) or die(mysql_error());
		if (!$result) {
    	die('linsertion n a pas réussie !!! : ' . mysql_error());

		}else{
 
				echo 'L\'insertion s est bien déroulée !';}
			 }
		  }
	  }
		
}

}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<style type="text/css">
<!--
.Style3 {
	color: #0000FF;
	font-weight: bold;
}
.Style4 {
	color: #990033;
	font-weight: bold;
}
.Style6 {color: #990000}
-->
</style>
</head>

<body>
<div class="DestinaireImage" align="center" >
<h1 align="center" class="subfooter  Style3">Enregistrement des Courriers </h1>

<form action="" method="post" enctype="multipart/form-data">
  <p>&nbsp;</p>
  <table width="570" height="95" border="0" align="center" bordercolor="#0000FF" > 
  <tr> <td width="200"><span class="Style4">Saisir le nombre de pages:</span></td> 
    <td width="360"><input name="nbre" type="text" size="1" maxlength="1" value="<?php if(isset($_POST['nbre']))echo $_POST['nbre'];?>"/></td> </tr> <tr> <td>&nbsp;</td> <td bordercolor="#0000FF"> <fieldset> <legend><span class="Style6">AJOUTER DES DOCUMENTS </span></legend>	 
          <?php if(isset($_POST['bouton_submit']) && ($_POST['nbre'])){ extract($_POST); $nbre_photo = $nbre; for($j = 1; $j<= $nbre_photo; $j++){ echo'<input type="file" name="image'.$j.'" /><br/>'; } } ?> </fieldset> </td> </tr> <tr> <td>&nbsp;</td> <td><input type="submit" name="bouton_submit" value="envoyer" ></input></td> </tr></table>
</form>
</div>
<p>&nbsp;</p>
</body>
</html>

Re: probleme d'insersion d'image

Posté : 27 juil. 2013, 23:01
par imikado
Vous indiquez bien votre code, mais pas l'erreur retournée :(

Pouvez vous copier l'erreur php ?

Re: probleme d'insersion d'image

Posté : 28 juil. 2013, 09:55
par msi79
bonjour a tous oui j'ai oublié de mettre l'erreur.
voici l'erreur qu'il m'affiche :You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz??????????????????????????????????????' at line 1

Re: probleme d'insersion d'image

Posté : 28 juil. 2013, 14:14
par msi79
je continue de chercher mais toujours sans succès :
apres un echo sur ma requête voici ce qu s'affiche :
INSERT INTO image(id_img,img, extension ,id_victime) VALUES('',:image, :type, :id)L'insertion s est bien déroulée !
mais je reçois rien dans ma bdd

voici mon code :
<?php

if(isset($_GET['id'])) $id = urldecode($_GET['id']);

if(isset($_POST['bouton_submit'])&& !empty($_POST['nbre'])){
 $cat = strip_tags(trim($_POST['cat'])); 
  
    for($i = 1; $i <= $_POST['nbre']; $i++){

if(isset($_FILES['image'.$i]) && $_FILES['image'.$i]['error'] == 0 && isset($_POST['nbre'])){

	 //Indique si le fichier a été téléchargé
	 if(!is_uploaded_file($_FILES['image'.$i]['tmp_name']))
		echo 'Un problème est survenu durant l opération. Veuillez réessayer !';
	 else {
		//liste des extensions possibles    
		$extensions = array('/png', '/gif', '/jpg', '/jpeg');
 
		//récupère la chaîne à partir du dernier / pour connaître l'extension
		$extension = strrchr($_FILES['image'.$i]['type'], '/');
 
		//vérifie si l'extension est dans notre tableau            <em></em>
		if(!in_array($extension, $extensions))
			echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.';
		else {         
 
			//on définit la taille maximale
			define('MAXSIZE', 300000);        
			if($_FILES['image'.$i]['size'] > MAXSIZE)
			   echo 'Votre image est supérieure à la taille maximale de '.MAXSIZE.' octets';
			else {
				//connexion à la base de données
				try {
					$bdd = new PDO('mysql:host=localhost;dbname=bddgescour', 'root', '');
				} catch (Exception $e) {
					exit('Erreur : ' . $e->getMessage());
				}
 
				//Lecture du fichier
				$image = file_get_contents($_FILES['image'.$i]['tmp_name']);
 
				//METHODE normal
                    //$sql= "INSERT INTO image(id_img,img, extension ,id_victime) VALUES('','".$image."','".$extension."','".$id."')";
					//echo "INSERT INTO image(id_img,img, extension ,id_victime) VALUES('','".$image."','".$extension."','".$id."')";O
		            //$result = mysql_query($sql) or die(mysql_error());
		//fin METHODE normal
		//methode PDO
						$req = $bdd->prepare("INSERT INTO image(id_img,img, extension ,id_victime) VALUES('',:image, :type, :id)");
				echo "INSERT INTO image(id_img,img, extension ,id_victime) VALUES('',:image, :type, :id)";
				$req->execute(array(   
				    'id_img'=>'',
					'image' => $image,
					'type' => $_FILES['image'.$i]['type'],
					'id' => $id,
					));
		// FIN PDO
		if (!$req) {
    	die('linsertion n a pas réussie !!! : ' . mysql_error());

		}else{
 
				echo 'L\'insertion s est bien déroulée !';}
			 }
		  }
	  }
		
}

}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<style type="text/css">
<!--
.Style3 {
	color: #0000FF;
	font-weight: bold;
}
.Style4 {
	color: #990033;
	font-weight: bold;
}
.Style6 {color: #990000}
-->
</style>
</head>

<body>
<div class="DestinaireImage" align="center" >
<h1 align="center" class="subfooter  Style3">Enregistrement des Courriers </h1>

<form action="" method="post" enctype="multipart/form-data">
  <p>&nbsp;</p>
  <table width="570" height="95" border="0" align="center" bordercolor="#0000FF" > 
  <tr> <td width="200"><span class="Style4">Saisir le nombre de pages:</span></td> 
    <td width="360"><input name="nbre" type="text" size="1" maxlength="1" value="<?php if(isset($_POST['nbre']))echo $_POST['nbre'];?>"/></td> </tr> <tr> <td>&nbsp;</td> <td bordercolor="#0000FF"> <fieldset> <legend><span class="Style6">AJOUTER DES DOCUMENTS </span></legend>	 
          <?php if(isset($_POST['bouton_submit']) && ($_POST['nbre'])){ extract($_POST); $nbre_photo = $nbre; for($j = 1; $j<= $nbre_photo; $j++){ echo'<input type="file" name="image'.$j.'" /><br/>'; } } ?> </fieldset> </td> </tr> <tr> <td>&nbsp;</td> <td><input type="submit" name="bouton_submit" value="envoyer" ></input></td> </tr></table>
</form>
</div>
<p>&nbsp;</p>
</body>
</html>

Re: probleme d'insersion d'image

Posté : 28 juil. 2013, 20:07
par imikado
Le champ d'id est il auto incrémental ?

Re: probleme d'insersion d'image

Posté : 28 juil. 2013, 20:36
par msi79
oui le champ id est AUTO_INCREMENT

Re: probleme d'insersion d'image

Posté : 28 juil. 2013, 20:49
par imikado
Dans ce cas la, le champ id n'est pas nécessaire
INSERT INTO image (img, extension ,id_victime) VALUES (:image, :type, :id)

Re: probleme d'insersion d'image

Posté : 28 juil. 2013, 21:09
par msi79
merci beaucoup ça marche .
voici le code final si ça peut inspirer certains . vraiment merci
<?php
include('body/header.php');
include('body/menu.php');
if(isset($_GET['id'])) $id = urldecode($_GET['id']);

if(isset($_POST['bouton_submit'])&& !empty($_POST['nbre'])){
 $cat = strip_tags(trim($_POST['cat'])); 
  
    for($i = 1; $i <= $_POST['nbre']; $i++){

if(isset($_FILES['image'.$i]) && $_FILES['image'.$i]['error'] == 0 && isset($_POST['nbre'])){

	 //Indique si le fichier a été téléchargé
	 if(!is_uploaded_file($_FILES['image'.$i]['tmp_name']))
		echo 'Un problème est survenu durant l opération. Veuillez réessayer !';
	 else {
		//liste des extensions possibles    
		$extensions = array('/png', '/gif', '/jpg', '/jpeg');
 
		//récupère la chaîne à partir du dernier / pour connaître l'extension
		$extension = strrchr($_FILES['image'.$i]['type'], '/');
 
		//vérifie si l'extension est dans notre tableau            <em></em>
		if(!in_array($extension, $extensions))
			echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.';
		else {         
 
			//on définit la taille maximale
			define('MAXSIZE', 300000);        
			if($_FILES['image'.$i]['size'] > MAXSIZE)
			   echo 'Votre image est supérieure à la taille maximale de '.MAXSIZE.' octets';
			else {
				//connexion à la base de données
				try {
					$bdd = new PDO('mysql:host=localhost;dbname=bddgescour', 'root', '');
				} catch (Exception $e) {
					exit('Erreur : ' . $e->getMessage());
				}
 
				//Lecture du fichier
				$image = file_get_contents(mysql_real_escape_string($_FILES['image'.$i]['tmp_name']));
 
				//METHODE normal
                    //$sql= "INSERT INTO image(id_img,img, extension ,id_victime) VALUES('','".$image."','".$extension."','".$id."')";
					//echo "INSERT INTO image(id_img,img, extension ,id_victime) VALUES('','".$image."','".$extension."','".$id."')";
		           // $result = mysql_query($sql) or die(mysql_error());
		//fin METHODE normal
		//methode PDO
						$req = $bdd->prepare("INSERT INTO image (img, extension ,id_victime) VALUES (:image, :type, :id)");
				echo "INSERT INTO image (img, extension ,id_victime) VALUES (:image, :type, :id)";
				$req->execute(array(   
				   
					'image' => $image,
					'type' => $_FILES['image'.$i]['type'],
					'id' => $id,
					));
		// FIN PDO
		if (!$req) {
    	die('linsertion n a pas réussie !!! : ' . mysql_error());

		}else{
 
				echo 'L\'insertion s est bien déroulée !';}
			 }
		  }
	  }
		
}

}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<style type="text/css">
<!--
.Style3 {
	color: #0000FF;
	font-weight: bold;
}
.Style4 {
	color: #990033;
	font-weight: bold;
}
.Style6 {color: #990000}
-->
</style>
</head>

<body>
<div class="DestinaireImage" align="center" >
<h1 align="center" class="subfooter  Style3">Enregistrement des Courriers </h1>

<form action="" method="post" enctype="multipart/form-data">
  <p>&nbsp;</p>
  <table width="570" height="95" border="0" align="center" bordercolor="#0000FF" > 
  <tr> <td width="200"><span class="Style4">Saisir le nombre de pages:</span></td> 
    <td width="360"><input name="nbre" type="text" size="1" maxlength="1" value="<?php if(isset($_POST['nbre']))echo $_POST['nbre'];?>"/></td> </tr> <tr> <td>&nbsp;</td> <td bordercolor="#0000FF"> <fieldset> <legend><span class="Style6">AJOUTER DES DOCUMENTS </span></legend>	 
          <?php if(isset($_POST['bouton_submit']) && ($_POST['nbre'])){ extract($_POST); $nbre_photo = $nbre; for($j = 1; $j<= $nbre_photo; $j++){ echo'<input type="file" name="image'.$j.'" /><br/>'; } } ?> </fieldset> </td> </tr> <tr> <td>&nbsp;</td> <td><input type="submit" name="bouton_submit" value="envoyer" ></input></td> </tr></table>
</form>
</div>
<p>&nbsp;</p>
</body>
</html>