Comment afficher une image

Résolu
sandaff -  
valentintintin Messages postés 218 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   13
 
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
sandaff
 
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   Statut Membre Dernière intervention   13
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   13
 
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   Statut Membre Dernière intervention  
 
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