inserrer une photo dans une base de donnée et l'afficher
Hors ligneMsi79 Le 01/06/2011 Ă  19:55 Profil de Msi79 Configuration de Msi79

salut a tous ! 
je voudrais que les visiteurs de mon site puisseent enregeistrer leur photo dans la base de donnée et ensuite afficher ses photos . 
mais je n'arrive pas. 
alors je voudrais une aide svp . 
merci de bien vouloir m'aider . 

NB: je ne vois aucun aperçu quand j'execute mon programme

vici mon code : 


------------------------------------------------------------------------------------------ 

image.php 
------------------------------------------------------------------------------------------- 
<head> 
<title>Envoyer une image</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<style type="text/css"> 
label { 
display:block; 
width:150px; 
float:left; 

</style> 
</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 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']['type'], '/'); 

//vérifie si l'extension est dans notre tableau 
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']['size'] > MAXSIZE) 
echo 'Votre image est supérieure à la taille maximale de '.MAXSIZE.' octets'; 
else { 
//on se connecte (remplacer les paramètres de connexion) 
$connexion = mysql_connect("localhost", "root", "") or exit (mysql_error()); 
$database = mysql_select_db("go&ga") or exit (mysql_error()); 

//récupération des infos saisies 
$nom = mysql_escape_string($_POST['nom']); 
$description = mysql_escape_string($_POST['description']); 

//Lecture du fichier. On doit utiliser la fonction mysql_escape_string car les données binaires contiennent des caractères spéciaux. 
$image = mysql_escape_string(file_get_contents($_FILES['image']['tmp_name'])); 

//Il ne reste qu'à insérer tout ça dans notre table. 
mysql_query("INSERT INTO images(nom, description, img, extension) VALUES('".$nom."', '".$description."', '".$image."', '".$_FILES['image']['type']."')") or exit (mysql_error()); 
mysql_close(); 
echo '<h3>L insertion s\'est bien déroulée !</h3>'; 




?> 

<h1>Envoyer une image</h1> 
<form enctype="multipart/form-data" action="" method="post"> 
<p> 
<label for="nom">Nom : </label><input type="text" name="nom" id="nom" /><br /> 
<label for="description">Description : </label><textarea name="description" id="description" rows="10" cols="50"></textarea><br /> 
<label for="image">Image : </label><input type="file" name="image" id="image" /><br /> 
<label for="validation">Valider : </label><input type="submit" name="validation" id="validation" value="Envoyer" /> 
</p> 
</form> 
<form action="galerie.php" method="post"> 
<p> 
<input type="submit" name="validation" value="image" /> 
</p> 
</form> 

</body> 
</html> 


-------------------------------------------------------------------------------------- 
apercu.php 

------------------------------------------------------------------------------------------- 

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Document sans titre</title> 
</head> 

<body> 

<?php 
//si nous avons une image 
if(!empty($_GET['id_img'])) { 

//connexion à la base de données 
$connexion = mysql_connect("localhost", "root", "") or exit (mysql_error()); 
$database = mysql_select_db("go&ga")or exit (mysql_error()); 

//on sécurise notre donnée 
$idImg = intval($_GET['id_img']); 

//la requète qui récupère l'image à partir de l'identifiant 
$apercu = mysql_query("SELECT extension, img FROM images WHERE id_img = ".$idImg) or exit (mysql_error()); 

//si le résultat est différent de 1 
if(mysql_num_rows($apercu) != 1) 
echo 'L image n existe pas !'; 
else { 
//on stocke les données dans un tableau 
$reponse = mysql_fetch_assoc($apercu); 
//on indique qu'on affiche une image 
header ("Content-type: ".$reponse['extension']); 
//on affiche l'image en elle même 
echo $reponse['img']; 

mysql_close(); 
} else 
echo 'Vous n avez pas sélectionné d image !'; 
?> 


</body> 

</html> 

------------------------------------------------------------------------------------------------- 
galerie.php 
-------------------------------------------------------------------------------------------------- 

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Document sans titre</title> 
</head> 

<body> 

<?php 
//si nous avons une image 
if(!empty($_GET['id_img'])) { 

//connexion à la base de données 
$connexion = mysql_connect("localhost", "root", "") or exit (mysql_error()); 
$database = mysql_select_db("go&ga")or exit (mysql_error()); 

//on sécurise notre donnée 
$idImg = intval($_GET['id_img']); 

//la requète qui récupère l'image à partir de l'identifiant 
$apercu = mysql_query("SELECT extension, img FROM images WHERE id_img = ".$idImg) or exit (mysql_error()); 

//si le résultat est différent de 1 
if(mysql_num_rows($apercu) != 1) 
echo 'L image n existe pas !'; 
else { 
//on stocke les données dans un tableau 
$reponse = mysql_fetch_assoc($apercu); 
//on indique qu'on affiche une image 
header ("Content-type: ".$reponse['extension']); 
//on affiche l'image en elle même 
echo $reponse['img']; 

mysql_close(); 
} else 
echo 'Vous n avez pas sélectionné d image !'; 
?> 


</body> 

</html> 

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels