J'essaye de faire un système de news en suivant un petit tuto et j'aimerai aussi pouvoir ajouter une image avant mon texte.
Je n'arrive pas à uploader l'image et à l'inscrire dans ma BDD pour réutilisation.
Je crois que je me suis embrouillé et j'ai un peu fait n'importe quoi
Mon formulaire:
<form action="liste.php" method="post" enctype="multipart/form-data">
<p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
<p>
Contenu :<br />
<textarea name="contenu" cols="50" rows="10">
<?php echo $contenu; ?>
</textarea><br /><br />
<input type="file" name="image" /><br /><br />
<input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
<input type="submit" value="Envoyer" />
</p>
</form>
Mon traitement:
if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
$titre = addslashes($_POST['titre']);
$contenu = addslashes($_POST['contenu']);
// On vérifie si c'est une modification de news ou non.
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 . "', '" . time() . "')");
// Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
if (isset($_FILES['image']) AND $_FILES['image']['error'] == 0)
{
// Testons si le fichier n'est pas trop gros
if ($_FILES['image']['size'] <= 10000000)
{
// Testons si l'extension est autorisée
$infosfichier = pathinfo($_FILES['image']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
if (in_array($extension_upload, $extensions_autorisees))
{
// On peut valider le fichier et le stocker définitivement
move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/' . basename($_FILES['image']['name']));
echo "L'envoi a bien été effectué !";
}
}
}
}
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'] . "'");
}
}