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
A voir également:
Stocker les images dans ma base de données et faire appel a elles sur ma page we
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);
?>
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, ...
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???
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)