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
}
?>
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'] . "'");
}
}
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'] . '\'');
}
?>
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
{
?>
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
Trouvez des réponses à vos questions sur la création de sites web, le référencement et les meilleures pratiques pour gérer un site. Échangez avec d'autres webmasters passionnés pour améliorer vos compétences en ligne et optimiser vos projets de site web.
2 juil. 2008 à 14:09
Une auter idée?
fichier.php n'est pas pris en compte du tout. Comment cela ce fait-il?
Merci de vote aide!
31 oct. 2008 à 14:07
Vas donc voir par là...
http://www.siteduzero.com/tutoriel-3-37674-upload-de-fichiers-par-formulaire.html
Salut Gino