lionel
-
7 mai 2009 à 08:40
Scienti
Messages postés13Date d'inscriptiondimanche 7 août 2011StatutMembreDernière intervention11 avril 2012
-
14 mars 2012 à 14:35
Bonjour,
j'ai un petit soucis, je veux afficher une galerie d'image mais quand j'éxécute mon fichier galerie.php j'ai un tableau sans image, les image ne ce reconstitut pas, quand je clique dessus j'ai un tas de caractère mais je ne sait pas d'ou vient mon erreur alors je vous met le tout:
entree_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("vehicules_neufs") 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="entree_nouveau_vehicule.php" 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>
apercu.php <?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("vehicules_neufs")or exit (mysql_error());
//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']['extension'];
}
mysql_close();
} else
echo 'Vous n avez pas sélectionné d image !';
?>
j'ai suivis un tutorial et pourtant je pense l'avoir bien suivis mais j'ai du faire une erreur je ne sais où.