News avec photo
webalexpb
-
webalexpb -
webalexpb -
Bonjour , j'ai un script de news avec titre , contenu ... mais je souhaiterais ajouter à cela une photo...
Cependant j'ai lu à droite à gauche qu'il n'était pas souhaitable de stocker directement la photo dans la bdd ...
Comment faire alors ??
Merci de votre aide
Cordialement
Cependant j'ai lu à droite à gauche qu'il n'était pas souhaitable de stocker directement la photo dans la bdd ...
Comment faire alors ??
Merci de votre aide
Cordialement
A voir également:
- News avec photo
- Google photo - Télécharger - Albums photo
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Google maps photo maison - Guide
- Partage photo - Guide
- Recuperer photo google photo - Guide
18 réponses
Salut.
Il faut stocker la photo pour la rendre accessible via HTTP ou sur un FTP publique.
Il suffira de l'inclure avec la balise <img /> :
Il faut stocker la photo pour la rendre accessible via HTTP ou sur un FTP publique.
Il suffira de l'inclure avec la balise <img /> :
<img src="adresse de l'image" alt="Texte alternatif" />
Il suffit de placer l'image sur ton FTP et de l'inclure avec la balise <img />, comme on le fait habituellement ...
je voudrais l'inclure dans ma table news
id
titre
contenu
img
timestamp
tu crois que c 'est possible ???
pasque j'arrive pas à créer le champ blob , il me ressort une erreur
id
titre
contenu
img
timestamp
tu crois que c 'est possible ???
pasque j'arrive pas à créer le champ blob , il me ressort une erreur
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je suppose que tu comptes ajouter un champ pour envoyer un fichier sur le formulaire pour ajouter une news ?
Après avoir enregistrer le fichier, tu devras insérer la news dans la table. Pour la colonne "img", il suffira de mettre le nom du fichier, comme n'importe quel autre texte. Le type de la colonne sera simplement TINYTEXT ou VARCHAR.
Lorsque tu afficheras une news, si la colonne "img" n'est pas vide, alors tu génères le HTML :
Après avoir enregistrer le fichier, tu devras insérer la news dans la table. Pour la colonne "img", il suffira de mettre le nom du fichier, comme n'importe quel autre texte. Le type de la colonne sera simplement TINYTEXT ou VARCHAR.
Lorsque tu afficheras une news, si la colonne "img" n'est pas vide, alors tu génères le HTML :
<img src="images/news/$nom" alt="Image de la news" />à l'aide d'un echo où $nom est la colonne img de ta table. Si la colonne est vide, alors tu affiche l'image par défaut :
<img src="images/news/default.png" alt="Image de la news" />
OK , je commence à saisir , mais comment faire pour ajouter l'image depuis le formulaire dans un dossier sur mon ftp ??
Merci bcp !! ça m aide bien !!
Cependant , ce que je ne saisi pas , c'est comment associé l'image à ma news ???
Cependant , ce que je ne saisi pas , c'est comment associé l'image à ma news ???
et comment je fais ça ??? je ne comprends pas comment je peux prendre le nom du fichier et le stocker dans ma bdd ...
BOnjour, j'ai essayer tout ce que tu m'as dis .... je bloque là ...
J'ai deux pages :
redigernews.php
<body>
<h3><a href="listedesnews.php">Retour à la liste des news</a></h3>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("essai");
if (isset($_GET['modifier_news']))
{
$_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
$retour = mysql_query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'');
$donnees = mysql_fetch_array($retour);
$titre = stripslashes($donnees['titre']);
$contenu = stripslashes($donnees['contenu']);
$id_news = $donnees['id'];
}
else
{
$titre = '';
$contenu = '';
$id_news = 0;
}
?>
<form action="listedesnews.php" method="post" enctype="multipart/form-data">
<p>
Titre : <br />
<input type="text" size="30" name="titre" value="<?php echo $titre; ?>" />
<br /><br />
Contenu :<br />
<textarea name="contenu" cols="50" rows="10">
<?php echo $contenu; ?>
</textarea><br />
<p>
Formulaire d'envoi de fichier :<br />
<input type="file" name="monfichier" /><br />
</p>
<input type="submit" value="Envoyer" />
</p>
</form>
</body>
listedesnews.php
<body>
<h2><a href="redigernews.php">Ajouter une news</a></h2>
<?php
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
if ($_FILES['monfichier']['size'] <= 1000000)
{
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
if (in_array($extension_upload, $extensions_autorisees))
{
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'image_news/' . basename($_FILES['monfichier']['name']));
echo "L'envoi a bien été effectué !";
}
}
}
?>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("jura-betail");
$image = $_FILES['nom_input']['name']
if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
$titre = addslashes($_POST['titre']);
$contenu = addslashes($_POST['contenu']);
if ($_POST['id_news'] == 0)
{
mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . $image . "', '" . time() . "')");
}
else
{
$_POST['id_news'] = addslashes($_POST['id_news']);
mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'");
}
}
if (isset($_GET['supprimer_news']))
{
$_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Image</th>
<th>Date</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour))
{
?>
<tr>
<td><?php echo '<a href="redigernews.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="listedesnews.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo stripslashes($donnees['image']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>
<?php
}
?>
</table>
</body>
J'ai ensuite deux messages d'erreurs :
L'envoi a bien été effectué !
Notice: Undefined index: id_news in C:\wamp\www\jura-betail\admin\listedesnews.php on line 51
Notice: Undefined variable: image in C:\wamp\www\jura-betail\admin\listedesnews.php on line 54
La ligne 51 correspond à :
if ($_POST['id_news'] == 0)
Et la ligne 54 à :
mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . $image . "', '" . time() . "')");
Merci de ton aide ...
J'ai deux pages :
redigernews.php
<body>
<h3><a href="listedesnews.php">Retour à la liste des news</a></h3>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("essai");
if (isset($_GET['modifier_news']))
{
$_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
$retour = mysql_query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'');
$donnees = mysql_fetch_array($retour);
$titre = stripslashes($donnees['titre']);
$contenu = stripslashes($donnees['contenu']);
$id_news = $donnees['id'];
}
else
{
$titre = '';
$contenu = '';
$id_news = 0;
}
?>
<form action="listedesnews.php" method="post" enctype="multipart/form-data">
<p>
Titre : <br />
<input type="text" size="30" name="titre" value="<?php echo $titre; ?>" />
<br /><br />
Contenu :<br />
<textarea name="contenu" cols="50" rows="10">
<?php echo $contenu; ?>
</textarea><br />
<p>
Formulaire d'envoi de fichier :<br />
<input type="file" name="monfichier" /><br />
</p>
<input type="submit" value="Envoyer" />
</p>
</form>
</body>
listedesnews.php
<body>
<h2><a href="redigernews.php">Ajouter une news</a></h2>
<?php
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
if ($_FILES['monfichier']['size'] <= 1000000)
{
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
if (in_array($extension_upload, $extensions_autorisees))
{
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'image_news/' . basename($_FILES['monfichier']['name']));
echo "L'envoi a bien été effectué !";
}
}
}
?>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("jura-betail");
$image = $_FILES['nom_input']['name']
if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
$titre = addslashes($_POST['titre']);
$contenu = addslashes($_POST['contenu']);
if ($_POST['id_news'] == 0)
{
mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . $image . "', '" . time() . "')");
}
else
{
$_POST['id_news'] = addslashes($_POST['id_news']);
mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'");
}
}
if (isset($_GET['supprimer_news']))
{
$_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Image</th>
<th>Date</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour))
{
?>
<tr>
<td><?php echo '<a href="redigernews.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="listedesnews.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo stripslashes($donnees['image']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>
<?php
}
?>
</table>
</body>
J'ai ensuite deux messages d'erreurs :
L'envoi a bien été effectué !
Notice: Undefined index: id_news in C:\wamp\www\jura-betail\admin\listedesnews.php on line 51
Notice: Undefined variable: image in C:\wamp\www\jura-betail\admin\listedesnews.php on line 54
La ligne 51 correspond à :
if ($_POST['id_news'] == 0)
Et la ligne 54 à :
mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . $image . "', '" . time() . "')");
Merci de ton aide ...
Salut.
Utilise la balise "code" de CCM.
Pour tes erreurs, ça veut dire que $_POST['id_news'] et $image n'existent pas.
Il faut vérifier avant si le formulaire est envoyé avec des isset().
Utilise la balise "code" de CCM.
Pour tes erreurs, ça veut dire que $_POST['id_news'] et $image n'existent pas.
Il faut vérifier avant si le formulaire est envoyé avec des isset().
oups j'avais pas fait gaffe à cette balise !! mes excuses ...
Je teste pourtant si le fichier a bien été envoyé puis je valide l'upload ....
je ne comprends pas mon erreur ....
Je teste pourtant si le fichier a bien été envoyé puis je valide l'upload ....
je ne comprends pas mon erreur ....
<body>
<h2><a href="redigernews.php">Ajouter une news</a></h2>
<?php
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'image_news' . basename($_FILES['monfichier']['name']));
echo "L'envoi a bien été effectué !";
}
?>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("jura-betail");
if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
$titre = addslashes($_POST['titre']);
$contenu = addslashes($_POST['contenu']);
if ($_POST['id_news'] == 0)
{
mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . $image . "', '" . time() . "')");
}
else
{
$_POST['id_news'] = addslashes($_POST['id_news']);
mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'");
}
}
if (isset($_GET['supprimer_news']))
{
$_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Image</th>
<th>Date</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour))
{
?>
<tr>
<td><?php echo '<a href="redigernews.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="listedesnews.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo stripslashes($donnees['image']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>
<?php
}
?>
</table>
</body>
Voilà où j'en suis :
page redigernews.php
page listedesnews.php
désolé , je ne peux pas mettre tout ça dans la balise code , ça ne marche pas ...
page redigernews.php
<h3><a href="listedesnews.php">Retour à la liste des news</a></h3>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("jura-betail");
if (isset($_GET['modifier_news']))
{
$_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
$retour = mysql_query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'');
$donnees = mysql_fetch_array($retour);
$titre = stripslashes($donnees['titre']);
$contenu = stripslashes($donnees['contenu']);
$id_news = $donnees['id'];
}
else
{
$titre = '';
$contenu = '';
$id_news = 0;
}
?>
<form action="listedesnews.php" method="post" enctype="multipart/form-data">
<p>
Titre : <br />
<input type="text" size="30" name="titre" value="<?php echo $titre; ?>" />
<br /><br />
Contenu :<br />
<textarea name="contenu" cols="50" rows="10">
<?php echo $contenu; ?>
</textarea><br />
<p>
Formulaire d'envoi de fichier :<br />
<input type="file" name="monfichier" /><br />
</p>
<input type="submit" value="Envoyer" />
</p>
</form>
page listedesnews.php
<h2><a href="redigernews.php">Ajouter une news</a></h2>
<?php
if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'image_news' . basename($_FILES['monfichier']['name']));
echo "L'envoi a bien été effectué !";
}
?>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("base");
if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
$titre = addslashes($_POST['titre']);
$contenu = addslashes($_POST['contenu']);
if ($_POST['id_news'] == 0)
{
mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . $image . "', '" . time() . "')");
}
else
{
$_POST['id_news'] = addslashes($_POST['id_news']);
mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'");
}
}
if (isset($_GET['supprimer_news']))
{
$_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Image</th>
<th>Date</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour))
{
?>
<tr>
<td><?php echo '<a href="redigernews.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="listedesnews.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo stripslashes($donnees['image']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>
<?php
}
?>
</table>
désolé , je ne peux pas mettre tout ça dans la balise code , ça ne marche pas ...