Stocker les images dans ma base de données et faire appel a elles sur ma page we

Signaler
Messages postés
5
Date d'inscription
jeudi 26 mars 2009
Statut
Membre
Dernière intervention
30 mai 2009
-
Messages postés
195
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 octobre 2011
-
bonjour, je suis actuellement en train de développer un site internet, et j'ai créer un livre d'or. je voudrai que l'orsque les internautes veulent écrire un commentaire qu'ils puissent avoir la possibilité d'ajouter une photo et qu'elle s'affiche sur la page web a coté de leur commentaire, mais je ne vois pas comment faire sa.
je c que en gros il faut stocker les images dans ma base de données et faire appel a elles sur ma page web.

pourrai-je avoir une petite aide s'il vous plait

4 réponses

Messages postés
195
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 octobre 2011
23
Bonjour,
Mauvaise démarche ! (stocker les images dans ma base de données)

La "bonne" facon est de stocker les images dans un repertoire, et le NOM des images dans la BD (un champ VARCHAR fera l'affaire).

1 --> formulaire d'upload de l'image (en meme temps que les autres donnees du "livre d'or") avec :
<form name="livredor" method="post" ENCTYPE="multipart/form-data" action="traiterlivredor.php">
<textarea rows="4" cols="30" name="COMMENT" /></textarea>

</form>
2 --> traiterlivredor.php :
traitement des donnees recuperees (pseudo, commentaire, ... + PHOTO)
<?php
// -------------------------------------------
// repertoire des photos (doit etre deprotege en ecriture : chmod 777)
 $chemin = 'photos-livredor/';
// -------------------------------------------
$PSEUDO = mysql_real_escape_string(nl2br($_POST['PSEUDO']));
$COMMENT = mysql_real_escape_string(nl2br($_POST['COMMENT']));
// -------------------------------------------
// enregistrement des champs (autres que photo) dans la BD (par INSERT)
 $listechamps = 'PSEUDO,COMMENT';
 $listevaleurs = '\''.$PSEUDO.'\',\''.$COMMENT.'\'';
 $requeteNEW = 'INSERT INTO LIVREDOR ('.$listechamps.') VALUES('.$listevaleurs.')';
 $resultINSERTNEW = mysql_query($requeteNEW)  or die('Erreur SQL !
'.$requeteNEW.'
'.mysql_error());
// -------------------------------------------
// recuperation du ID cree en selectionnant LA DERNIERE fiche cree
 $query = 'SELECT MAX(ID) AS IDmax FROM LIVREDOR';
 $result = mysql_query($query)  or die('Erreur SQL !
'.$query.'
'.mysql_error());
 $val = mysql_fetch_array($result);
 $IDnew = $val['IDmax'];
// -------------------------------------------
if(isset($_FILES['PHOTO']))
  {
// Restrictions (accepter seulement les images, poids maxi, ...) :
 $FileSizeMax = 2000000;
 $ExtfichierOK = '" jpg jpeg png gif"';
// ... gestion des erreurs
// ...
// -------------------------------------------
// enregistrement de la photo dans le repertoire
  $PHOTOupload = $_FILES['PHOTO']['name'];
  $temp = $_FILES['PHOTO']['tmp_name'];
  move_uploaded_file($temp, $chemin.$PHOTOupload);
// enregistrement du NOM de la photo dans la BD (par UPDATE)
  $SQL = 'UPDATE LIVREDOR SET PHOTO=\''.$PHOTOupload.'\' WHERE ID= '.$IDnew;
  mysql_query($SQL);
?>

Si je n'ai pas fait d'erreur ..........
Messages postés
195
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 octobre 2011
23
Voir aussi cet excellent (!) tutorial :
http://www.phpcs.com/tutoriaux/PHP-REDIMENSIONNER-IMAGE-PICTO-APRES-UPLOAD_881.aspx

pour :
- un exemple complet traité d'upload et enregistrement dans BD (voir le paragraphe FICHIER-TRAITER.php)
- Le redimensionnement des photos (creation de picto, ...) : fonctions de redimensionnement d'images, ...

Le meme tuto avec une meilleure mise  en page (et des illustrations) ici : http://j-reaux.developpez.com/tutoriel/php/fonctions-redimensionner-image/
Messages postés
5
Date d'inscription
jeudi 26 mars 2009
Statut
Membre
Dernière intervention
30 mai 2009

je te remercie beaucoup pour ton aide j'avance a grand pas^^, mais en ce qui concerne l'enregistrement du nom de la photo, je comprend pas pourquoi tu a fais un UPDATE au lieu d'un INSERT, puis il serai mieux d'enregistrer le chemin de l'image si je veux faire appel à elle dans une page web non???
Messages postés
195
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 octobre 2011
23
1- Les PSEUDO et COMMENT ont ete enregistres en INSERT : DONC la fiche a ete cree.
2- traitement de l'image (eventuelle)
3- On recupere l'ID de cette derniere fiche cree pour y ajouter la PHOTO (UPDATE)

Dans mon cas, j'ai separe l'enregistrement des donnees "text" des donnees image "file".
L
Mais l'etape 1- peut aussi se faire en meme temps que la 3- (dans ce cas -> INSERT PSEUDO, COMMENT + PHOTO)

Enfin, c'est bien le NOM de l'image qui est inserée dans la BD ($PHOTOupload), mais on peut aussi lui ajouter le chemin ($PHOTOupload = $chemin.$PHOTOupload)