Insertion image php/mysql
Résolu
lionel
-
Scienti -
Scienti -
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:
galerie.php
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());
//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']['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ù.
Merci d'avance.
Cordialement lionel
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>
galerie.php
<head> <title>Ma galerie d'images</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> body { width: 95%; } div { width: 22%; float: left; text-align: center; border: 1px solid black; margin: 5px; padding: 5px; } p { text-align: left; } a { color: #000000; text-decoration: none; } </style> </head> <body> <h1>Ma galerie d'images</h1> <?php $connexion = mysql_connect("localhost", "root", "") or exit (mysql_error()); $database = mysql_select_db("vehicules_neufs") or exit (mysql_error()); $affichage = mysql_query("SELECT id_img, nom, description FROM images") or exit (mysql_error()); while($result = mysql_fetch_assoc($affichage)) { echo '<div>'; echo '<a href="apercu.php?id_img='.$result['id_img'].'"><img src="apercu.php?id_img='.$result['id_img'].'" alt="'.$result['nom'].'" title="'.$result['nom'].'" /></a>'; echo '<p>Description : '.$result["description"].'</p>'; echo '</div>'; } mysql_close(); ?>
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());
//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']['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ù.
Merci d'avance.
Cordialement lionel
A voir également:
- Insertion image php/mysql
- Image iso - Guide
- Touche insertion clavier - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
- Insertion liste déroulante excel - Guide
41 réponses
Moi j'étais passé en LONGBLOG parce qu'il me sortait une erreur, mon image était trop grosse (80k). Mais si ton image était trop grosse, elle ne serait pas enregistrée.
Peux-tu :
1-redonner le code du apercu.php tel qu'il est maintenant ?
2-insérer une nouvelle image de petite taille (< 50k) et essayer de la visualiser.
Peux-tu :
1-redonner le code du apercu.php tel qu'il est maintenant ?
2-insérer une nouvelle image de petite taille (< 50k) et essayer de la visualiser.
<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("vehicules_neufs")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']['extension'];
}
mysql_close();
} else
echo 'Vous n avez pas sélectionné d image !';
?>
</body>
<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("vehicules_neufs")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']['extension'];
}
mysql_close();
} else
echo 'Vous n avez pas sélectionné d image !';
?>
</body>
désolé je l'ai retirer le extension il n'y est plus et sa marche toujours pas
<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("vehicules_neufs")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>
<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("vehicules_neufs")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>
Franchement, depuis le début je me tue à te répéter que ta ligne echo $reponse['img']['extension']; est incorrecte. Il faut echo $reponse['img'].
Je le dis depuis mon premier message, relis-le.
Je le dis depuis mon premier message, relis-le.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je l'ai retirer depuis le début sur le premier copie de apercu je me suis planter de fichier j'ai voulu aller trop vite désolé
certains éditeurs ajoutent des caractères invisibles au début des fichiers. Et comme ils sont avant le <?php, ils empêchent les headers de marcher. Je ne connais pas dreamweaver
Peux-tu ouvrir ton script apercu.php avec le simple bloc-notes du PC puis l'enregistrer en faisant bien attention de l'enregistrer avec le codage ANSI
Peux-tu ouvrir ton script apercu.php avec le simple bloc-notes du PC puis l'enregistrer en faisant bien attention de l'enregistrer avec le codage ANSI
<!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=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("vehicules_neufs")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>
<html xmlns="http://www.w3.org/1999/xhtml">
<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("vehicules_neufs")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>
Je n'avais même pas remarqué depuis le message 25 ...
Ça n'a AUCUNE chance de marcher.
Il faut faire comme dans ton premier script : RIEN DU TOUT avant le premier <?php ni après le ?>
Ça n'a AUCUNE chance de marcher.
Il faut faire comme dans ton premier script : RIEN DU TOUT avant le premier <?php ni après le ?>
Ce que je n'ai pas compris moi, c'est pourquoi tu as ajouté plein de trucs sans rien dire jusqu'au message 24 ? La correction que je t'avais donnée ce matin à 9h40 était la bonne.
salu,
Oui si tu veux je te passe la solution que j'ai utilisé, donne moi ton e-mail et je te l'envoie
Oui si tu veux je te passe la solution que j'ai utilisé, donne moi ton e-mail et je te l'envoie
Oui j'ai une solution, laisse ton e-mail mais tu veux juste savoir comment les insérer ou aussi pour les afficher
si tu répond avant 18h je t'envérai sa aujourd'hui
si tu répond avant 18h je t'envérai sa aujourd'hui
Re Bonjour,
j'ai réussi à résoudre mon problème
MAIS j'ai un nouveau problème, je souhaite recuperer toute les photos de mon repertoire qui ont leurs nom qui commencent de la même manière que ma variable que j'ai récupéré
Exemple :
ma variable : $nom='elephant'
Je veux donc récupérer toutes le photos qui ont leur nom qui commence par 'elephant' ('elephant2.jpg' 'elephant1.jpg' 'elephant23.jpg')
j'ai réussi à résoudre mon problème
MAIS j'ai un nouveau problème, je souhaite recuperer toute les photos de mon repertoire qui ont leurs nom qui commencent de la même manière que ma variable que j'ai récupéré
Exemple :
ma variable : $nom='elephant'
Je veux donc récupérer toutes le photos qui ont leur nom qui commence par 'elephant' ('elephant2.jpg' 'elephant1.jpg' 'elephant23.jpg')