Comment afficher une image

Résolu/Fermé
sandaff - 7 août 2015 à 03:07
valentintintin Messages postés 218 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 9 août 2015 - 9 août 2015 à 16:22
Bonjour,
j'ai une base de donnée personne;
pour envoyer le logo de son entreprise dans la base de donnée; j'ai créé et mis dans un dossier images/logo. puis j'envois le nom de logo dans le champ logo_entreprise_personne de la table personne qui a pour identifiant num_personne.
le code d'insertion marche bien;mais mon problème est la récupération de l'image pour en fin l'afficher dans son profil.
mon code ne marche pas; le voici:
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=busnessworld;charset=utf8', 'root', '');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}

$reponse = $bdd->query('SELECT * FROM personne');
while ($donnees = $reponse->fetch())

{
?>
<p><strong>Nom</strong>: <strong>Prénom</strong>: <strong>E_mail</strong>: <strong>Mot de passe</strong>:<strong>Entreprise</strong>:<strong>Fonction</strong>: <strong>Profession</strong>: <strong>Nationalité</strong>: <strong>Lieu de naissance</strong>: <strong>Pays actuel</strong>: <strong>Ville actuelle</strong>: <strong>Tel</strong>: </p>
<?php echo $donnees['nom_personne'].$donnees['prenom_personne'].$donnees['email_personne'].$donnees['mot_de_passe'].$donnees['entreprise_personne'].$donnees['fonction_personne'].$donnees['profession_personne'].$donnees['nationalite'].$donnees['lieu_naissance'].$donnees['pays_personne'].$donnees['ville_personne'].$donnees['tel_personne']; ?>

<?php
echo '<img src="images/logo/'.$row[num_personne].'/personne/'.$row[images]/logo.'" alt="photo" />';

?>
<?php
}

$reponse->closeCursor(); // Termine le traitement de la requête
?>


Donc j'ai besoin d'un coup de main.
merci d'avance
A voir également:

1 réponse

valentintintin Messages postés 218 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 9 août 2015 13
Modifié par valentintintin le 7/08/2015 à 07:17
Bonjour,
Je n'ai pas testé votre code mais je pense que le problème vient de la ligne d'affichage de l'image:

- Il n'y avait pas l'extension de l'image spécifiée
- Une "quote" mal positionnée
- $row qui n'existe pas au lieu de $donnees

echo '<img src="images/logo/'.$donnees[num_personne].'/personne/'.$donnees[images].'/logo.jpg" alt="photo" />';


Bonne chance !
1
Bonjour et merci pour le coup de main!
J'ai exploité le code, le problème est plutôt au niveau de $donnees['images'].'/logo.jpg après la correction des apostrophes.
J'ai remplacer par ceci et ça marche avec ça:
echo '<img src="images/logo/'.$donnees['num_personne'].'/personne/'.$donnees['logo_entreprise_personne'].' alt="photo" />';
il n'y a plus d'erreur; mais le problème est que l'image n'apparaît pas;
0
valentintintin Messages postés 218 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 9 août 2015 13
8 août 2015 à 14:12
En effet J'ai oublié les apostrophes pour les indices de tableaux ...

Dans votre echo il nous manque la fin de l'attribut src (le ") et il faut que 'logo_entreprise_personne' ai bien une extension.
0
sandaff > valentintintin Messages postés 218 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 9 août 2015
8 août 2015 à 15:42
merci j'avais trouvé la solution.
mon problème maintenant est la création de sa miniature.
voici le code que je veux adapter:
switch ($extension) {
case '.jpeg':$source = imagecreatefromjpeg($dossier .$last_id.'_'.$fichier); break;
case '.jpg': $source = imagecreatefromjpeg($dossier .$last_id.'_'.$fichier); break;
case '.png': $source = imagecreatefrompng($dossier .$last_id.'_'.$fichier); break;
case '.gif': $source = imagecreatefromgif($dossier .$last_id.'_'.$fichier); break;
default : echo 'error';die();
}


$destination = imagecreatetruecolor(180, 150); // On crée la miniature vide

// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);

// On crée la miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);

// On enregistre la miniature sous le nom " "
imagejpeg($destination, $dossier.'miniatures'.'/'.$last_id.'_'.$fichier);


je n'ai pas trouvé la solution d'abord.
0
valentintintin Messages postés 218 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 9 août 2015 13
8 août 2015 à 21:23
Ce script fonctionne parfaitement chez moi.
Avez-vous bien créé le dossier "miniatures" avant de le lancer ? (problèmes de droits sinon)

Bon courage :)
0
sandaff > valentintintin Messages postés 218 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 9 août 2015
8 août 2015 à 23:56
Bonjour!
Bien sur, je n'arrive pas à adapter;veuillez jeter un coup d'oeil dans code global:

<?php

$bdd = new PDO('mysql:host=localhost;dbname=busnessworld', 'root', '',array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));

// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
// Testons si le fichier n'est pas trop gros
if ($_FILES['monfichier']['size'] <= 1000000)
{
// Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
if (in_array($extension_upload, $extensions_autorisees))
{
$req = $bdd->prepare('INSERT INTO personne(nom_personne, prenom_personne, email_personne, mot_de_passe,logo_entreprise_personne, entreprise_personne, fonction_personne, profession_personne, nationalite, lieu_naissance, date_naissance, pays_personne, ville_personne, tel_personne ) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?)');
$req->execute(array($_POST['nom_personne'],$_POST['prenom_personne'],$_POST['email_personne'],$_POST['mot_de_passe'],$_FILES['monfichier']['name'],$_POST['entreprise_personne'],$_POST['fonction_personne'],$_POST['profession_personne'],$_POST['nationalite'],$_POST['lieu_naissance'],$_POST['date_naissance'],$_POST['pays_personne'],$_POST['ville_personne'],$_POST['tel_personne']));
// On peut valider le fichier et le stocker définitivement
move_uploaded_file($_FILES['monfichier']['tmp_name'],'images/logo/'.basename($_FILES['monfichier']['name']));


echo "L'envoi a bien été effectué !";

}
}
}


switch ($extension) {
case '.jpeg':$source = imagecreatefromjpeg($dossier .$last_id.'_'.$fichier); break;
case '.jpg': $source = imagecreatefromjpeg($dossier .$last_id.'_'.$fichier); break;
case '.png': $source = imagecreatefrompng($dossier .$last_id.'_'.$fichier); break;
case '.gif': $source = imagecreatefromgif($dossier .$last_id.'_'.$fichier); break;
default : echo 'error';die();
}


$destination = imagecreatetruecolor(180, 150); // On crée la miniature vide

// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);

// On crée la miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);

// On enregistre la miniature sous le nom " "
imagejpeg($destination, $dossier.'miniatures'.'/'.$last_id.'_'.$fichier);

?>

0