Uploader photo

Fermé
pipleton - 2 juil. 2008 à 11:15
 Gino - 31 oct. 2008 à 14:07
Bonjour,
Je suis en train de faire un site web avec un système de news que l'administrateur peut faire lui meme avec ses codes. Le système en lui meme marche très bien mais j'ai un problème puisque mes photos ne sont pas prises en comptes dans la base de données, elles ne s'upload pas et je ne comprend pas pk! J'ai fait un repertoire de destination qui s'appelle "image".
Quelqu'un peut il m'aider svp à comprendre mes erreurs?
Merci d'avance.
Voici les fichiers dt j'ai besoin pr les news!
Cordialement,

TABLE DANS phpmydamin:

CREATE TABLE IF NOT EXISTS `news` (
`ID` int(11) NOT NULL auto_increment,
`TITRE` varchar(255) NOT NULL default '',
`CONTENU` text NOT NULL,
`timestamp` datetime NOT NULL default '0000-00-00 00:00:00',
`photo` varchar(255) NOT NULL default '',
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=31 ;


FICHIER rediger_news.php:

<?php


if (isset($_GET['modifier_news'])) // Si on demande de modifier une news
{
// On protège la variable "modifier_news" pour éviter une faille SQL
$_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
// On récupère les infos de la news correspondante
$retour = mysql_query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'');
$donnees = mysql_fetch_array($retour);

// On place le titre et le contenu dans des variables simples
$titre = stripslashes($donnees['TITRE']);
$contenu = stripslashes($donnees['CONTENU']);
$photo = stripslashes($donnees['photo']);
$id_news = $donnees['ID']; // Cette variable va servir pour se souvenir que c'est une modification
}
else // C'est qu'on rédige une nouvelle news
{
// Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news
$titre = '';
$contenu = '';
$photo = '' ;
$id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
}
?>

<form action="liste_news.php" method="post">

<center>
Titre : <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 /><br>

<h2 class="titre_2"><u><i><center>Ajouter des fichiers.</center></i></u></h2><br><br>

<form method = 'post' enctype = 'multipart/form-data' action = 'fichier.php'>

<input type = 'file' name = 'image'/> </br><br>

<input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />

<input type = 'submit' value = 'Ajouter'/>
</form>

</center>
</form>


FICHIER liste_news.php :

<?php

// Vérification 1 : est-ce qu'on veut poster une news ?

if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
$titre = addslashes($_POST['titre']); /*addslashes ajoute des slash*/
$contenu = addslashes($_POST['contenu']);
$chemin_photo = $_FILES['image']['tmp_name'];
$repertoire_destination = "image/";
$nom_photo = $_FILES['image']['name'];

// On vérifie si c'est une modification de news ou pas
if ($_POST['id_news'] == 0)
{
// Ce n'est pas une modification, on crée une nouvelle entrée dans la table
mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '".date("Y-m-d H:i:s ")."', '".$nom_photo."')");
}
else
{
// On protège la variable "id_news" pour éviter une faille SQL
$_POST['id_news'] = addslashes($_POST['id_news']);
// C'est une modification, on met juste à jour le titre et le contenu
mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'");
}
}

// Vérification 2 : est-ce qu'on veut supprimer une news ?

if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
{
// Alors on supprime la news correspondante
// On protège la variable "id_news" pour éviter une faille SQL
$_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
?>


FICHIER fichier.php :

<?php if (isset ($_SESSION['connecter'] ))
{

$chemin_photo = $_FILES['image']['tmp_name'];
$repertoire_destination = "image/";
$nom_photo = $_FILES['image']['name'];

if (move_uploaded_file($chemin_photo, 'image/'.$_FILES['image']['name'] ) )
{

mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '".date("Y-m-d H:i:s ")."', '".$nom_photo."')") or die(mysql_error());

echo '<meta http-equiv="Refresh" content="2;url=../index1.php" />';
echo "Le fichier temporaire ".$nom_photo." a été transféré vers ".$repertoire_destination.$nom_photo;
}
else
{
echo "Le fichier n'a pas été transféré...";
}
}
else
{
?>
A voir également:

1 réponse

Salut,


j'avais eu ce genre de pb une fois. tu peux essayer un truc dans le genre (en changeant les noms de varaibles) :
rename($nomfic['tmp_name'], $repertoireimages.'/'.$nomfic['name']);

a la place de ton
move_uploaded_file($chemin_photo, 'image/'.$_FILES['image']['name']
dans fichier.php

mais c'est sans garanti
0
Non ça ne fonctionne pas plus
Une auter idée?
fichier.php n'est pas pris en compte du tout. Comment cela ce fait-il?
Merci de vote aide!
0
Gino > pipleton
31 oct. 2008 à 14:07
Salut,

Vas donc voir par là...

http://www.siteduzero.com/tutoriel-3-37674-upload-de-fichiers-par-formulaire.html

Salut Gino
0