OK, j'ai reremplacé par :
echo '<img src="' . htmlentities(trim($data['sites/all/images'])) . '" alt="" />';
Mais ça me fait toujours après insertion
Array ( [image_news] => Array ( [name] => cube1.jpg [type] => image/jpeg [tmp_name] => /var/log/tmp/phpoMbL9z [error] => 0 [size] => 5052 ) ) Upload effectué avec succès !INSERT INTO news VALUES("", "i-media", "essai de news y", "08-06-2010 18:11:16", "sites/all/images/OObu1.jpu", "tyty")
Et dans le code source ça m'affiche toujours <img src="" alt="" />
insert_news.php
<?php
ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL | E_STRICT);
print_r($_FILES);
$chemin_destination = 'sites/all/images/';
$dossier = 'sites/all/images/';
$fichier = basename($_FILES['image_news']['name']);
$taille_maxi = 102400;
$taille = filesize($_FILES['image_news']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['image_news']['name'], '.');
if(!empty($_FILES))
{
$fichier = basename($_FILES['image_news']['name']);
$taille_maxi = 102400;
$taille = filesize($_FILES['image_news']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg');
$extension = strrchr($_FILES['image_news']['name'], '.');
}
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, ou jpeg';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop lourd';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇèéÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['image_news']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Échec de l\'upload !';
}
}
else
{
echo $erreur;
}
// on teste si le formulaire a été validé
if (isset($_POST['go']) && $_POST['go']=='Poster la news') {
// on se connecte à notre base
$base = mysql_connect ('***', '***', '***');
mysql_select_db('***', $base);
// on teste la déclaration de nos variables
if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['texte_news'])) {
$erreur = 'Les variables nécessaires au script ne sont pas définies.';
}
else {
if (empty($_POST['auteur']) || empty($_POST['titre']) || empty($_POST['texte_news'])) {
$erreur = 'Au moins un des champs est vide.';
}
// si tout est bon, on peut commencer l'insertion dans la base
else {
// lancement de la requête d'insertion
$sql = 'INSERT INTO news VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['titre']).'", "'.date("d-m-Y H:i:s").'", "'.mysql_escape_string($dossier . $fichier).'", "'.mysql_escape_string($_POST['texte_news']).'")';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
echo $sql;
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on ferme la connexion à la base de données
mysql_close();
/* on redirige vers la page d'accueil du site (attention, cette redirection ne fonctionne qui si vous avez placé cette page dans un répertoire à partir de la racine du site). Si ce n'est pas le cas, veuillez entrer ici le bon chemin d'accès afin de retomber sur la page d'accueil du site.
header('Location: index.php'); */
// on termine le script courant
exit();
}
}
}
?>
<html>
<head>
<title>Insertion d'une nouvelle news</title>
</head>
<body>
<!-- on fait pointer le formulaire vers la page traitant les données -->
<form method="post" action="insert_news.php" enctype="multipart/form-data">
<table>
<tr>
<td>
<span class="gras">Auteur :</span>
</td>
<td>
<input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>">
</td>
</tr>
<tr>
<td>
<span class="gras">Titre :</span>
</td>
<td>
<input type="text" name="titre" maxlength="50" size="50" value="<?php if (isset($_POST['titre'])) echo htmlentities(trim($_POST['titre'])); ?>">
</td>
</tr>
<tr>
<td>
<span class="gras">Image</span>
<input type="text" style="display:none" name="nbr_photo" value="0" id="nbr_photo" />
</td>
<td>
<input type=hidden name=MAX_FILE_SIZE value=102400>
<input type="file" name="image_news" id="image_news" value="image_news" />
</td>
</tr>
<tr>
<td>
<span class="gras">News :</span>
</td>
<td>
<textarea name="texte_news" cols="50" rows="10"><?php if (isset($_POST['texte_news'])) echo htmlentities(trim($_POST['texte_news'])); ?></textarea>
</td>
</tr>
<tr>
<td>
<td align="right">
<input type="submit" name="go" value="Poster la news">
</td>
</tr>
</table>
</form>
<?php
// on affiche les erreurs éventuelles
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</body>
</html>
news.php
<?php
// on se connecte à notre base
$base = mysql_connect ('***', '***', '***');
mysql_select_db('***', $base);
// lancement de la requête. on sélectionne les news que l'on va ordonner suivant l'ordre "inverse" des dates (de la plus récente à la plus vieille : DESC) tout en ne sélectionnant que le nombre voulu de news à afficher (LIMIT)
$sql = 'SELECT auteur, titre, DAY(date) AS jour, MONTH(date) AS mois, YEAR(date) AS annee, HOUR(date) AS heure, MINUTE(date) AS minutes, SECOND(date) AS secondes, image_news, texte_news FROM news ORDER BY date ASC LIMIT 10';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// on compte le nombre de news stockées dans la base de données
$nb_news = mysql_num_rows($req);
if ($nb_news == 0) {
echo 'Aucune news enregistrée.';
}
else {
// si on a au moins une news, on l'affiche
while ($data = mysql_fetch_array($req)) {
// on affiche les résultats
echo
'<table>
<tr>
<td>';
echo '<img src="' . htmlentities(trim($data['sites/all/images/'])) . '" alt="" />';
echo
'</td>
<td>';
echo '<br />News de : ' , htmlentities(trim($data['auteur'])) , '<br />';
echo 'Titre : ' , htmlentities(trim($data['titre'])) , '<br />';
echo 'Postée le : ' , $data['jour'] , '/' , $data['mois'] , '/' , $data['annee'] , ' à ' , $data['heure'] , ':' , $data['minutes'] , ':' , $data['secondes'] , '<br /><br />';
echo 'News : ' , nl2br(htmlentities(trim($data['texte_news']))) , '<br /><br /><br />';
echo '</td>
</tr>
</table>';
}
}
// on libère l'espace mémoire alloué à cette requête
mysql_free_result ($req);
// on ferme la connexion à la base de données
mysql_close ();
?>
PS : je vais malheureusement devoir y aller bientôt (quand tu me verras déconnecté du forum, c'est que je serai parti), je serai de retour ce soir tard ou demain matin, si tu veux on peut se faire ça par messagerie instantanée aussi ? via mp si ça te dit. Merci pour toute ton aide en tout cas)