Problème affichage image avec mysql

Fermé
Fixer777 Messages postés 15 Date d'inscription dimanche 18 janvier 2009 Statut Membre Dernière intervention 5 mai 2009 - 18 janv. 2009 à 21:26
 marc - 10 févr. 2009 à 11:23
Bonsoir à vous,
voilà, je me retrouve en face d'un problème en programmation site web en php. Je suis membre du site du zéro mais je n'ai pas pu trouver dans les forums la réponse à ma question. Voici ce qui se passe, j'ai une base de données mysql où sont inscrites des données d'inscription pour un site (login, mot de passe, mail, avatar...). Les inscire ne furent pas un problème ni de les afficher... cependant je n'arrive pas à afficher l'avatar de l'utilisateur (l'image).
Pour préciser :
1-Ma librairie GD est activée;
2-L'image est de type BLOB dans la base de données;
3-Des caractères illisibles sont affichés à la place de l'image;
5-lorsque j'écris :
<?php
header("content-type: image/gif") //j'ai pris gif ici par exemple...
?>
j'obtiens ce message "l'image ne peut-être affichée car elle contient des erreurs", et lorsque je ne le mets pas, j'obtiens des caractères étranges à la place de l'image.
Je précise juste que je ne peux afficher le code source de la page dans le cas où l'image contient des erreurs.
Ma situation est donc critique, alors soit mon code que je vais vous passer est totalement erroné, soit je ne sais pas d'où ça peut provenir.
<?php
$base = mysql_connect ('localhost', 'root','');
mysql_select_db('sitenews', $base);
$sql = 'SELECT avatar FROM inscription WHERE login="'.mysql_escape_string($_SESSION['login']).'"';
$req = mysql_query($sql) or die(mysql_error());
$data = mysql_fetch_assoc($req);
echo '<img src="'.$data['avatar'].'" alt="mon avatar" title="mon avatar" />';
?>
Toute aide serait donc la bienvenue.
Merci d'avance
Fixer.
A voir également:

2 réponses

Fixer777 Messages postés 15 Date d'inscription dimanche 18 janvier 2009 Statut Membre Dernière intervention 5 mai 2009 1
18 janv. 2009 à 22:23
Alors personne ? Si vous ne comprenez pas, dites le moi afin que je modifie mon message...
Merci d'avance
Fixer.
0
Fixer777 Messages postés 15 Date d'inscription dimanche 18 janvier 2009 Statut Membre Dernière intervention 5 mai 2009 1
19 janv. 2009 à 15:53
S'il vous plaît, il y a bien forcément quelqu'un qui pourrait me guider, même si j'ai eu des renseignements, j'ai encore besoin d'aide... voilà ce que je vais modifier :
j'ai remis à la colonne avatar de mon champ inscription le type Varchar 255 à la place de BLOB. Il faut que j'insère non pas l'image mais le nom de l'image à la place or ça change tout mon code d'insertion de l'image, le voici :
<?php
//on teste si le visiteur a soumis le formulaire
if(isset($_POST['accepter']) && ($_POST['accepter']) == 'Envoyer')
{
//Indique si le fichier a été téléchargé
if(!is_uploaded_file($_FILES['avatar']['tmp_name']))
echo "";

else {
$extensions = array ('/jpeg', '/png', '/jpg', '/gif');
$extension = strrchr ($_FILES['avatar']['type'], '/');

if (!in_array($extension, $extensions))
echo "Le fichier que vous avez chargé n'est pas du format jpeg, png, gif ou jpg. Veuillez renouveler l'opération merci.";

else {
//on définit la taille maximale
define('MAXSIZE', 30000);
if($_FILES['avatar']['size'] > MAXSIZE)
echo 'Votre avatar est supérieur à la taille maximale de '.MAXSIZE.' octets';

else {

$base = mysql_connect ('localhost', 'root', '')or die(mysql_error());
mysql_select_db ('sitenews', $base)or die(mysql_error());
$sql = 'SELECT count(*) FROM inscription WHERE avatar="'.mysql_escape_string(file_get_contents($_FILES['avatar']['tmp_name'])).'"';
$req = mysql_query($sql) or die ('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

if ($data[0] == 0)
{
$sql = 'UPDATE inscription SET avatar="'.mysql_escape_string(file_get_contents($_FILES['avatar']['tmp_name'])).'", extension="'.$_FILES[avatar][type].'" WHERE login="'.mysql_escape_string($_SESSION['login']).'"';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
echo "Votre avatar a bien été modifié";
session_start();
$_SESSION['Avatar'] = $_POST['Avatar'];
header('location: gestion_compte.php');
exit();
mysql_close();
}
}
}
}
}
?>
Merci d'avance
Fixer.
0
je pense que la doc sur le site suivant t'aidera:
https://beaussier.developpez.com/articles/php/mysql/blob/
0