PHP News + Images

Solar13 Messages postés 204 Date d'inscription   Statut Membre Dernière intervention   -  
Solar13 Messages postés 204 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à vous,

J'ai fait un petit système de news pour mon site perso en suivant un tuto.

J'aimerai rajouter un image en plus du titre et de l'article, par exemple au dessus du texte.

Il existe un petit tuto pour ça ?

Merci à vous
A voir également:

5 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Salut,

Voilà un tutoriel permettant l'envoie d'image :
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/913099-transmettez-des-donnees-avec-les-formulaires#ss_part_4

Il faut ajouter une colonne à la table.
Cette colonne est un champ text (VARCHAR ou TINYTEXT) qui contiendra simplement le nom du fichier.
Ensuite, lorsque tu affiches les news, il suffira d'utiliser la variable pour générer le chemin complet vers l'image.
0
Solar13 Messages postés 204 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup, je viens de lire et j'ai bien compris comment orienter mon travail.

Mon seul soucis est la dernière partie, comment faire en sorte que ma variable aille chercher le chemin de l'image, et qu'elle prenne la bonne ?

Merci encore
0
cheese42 Messages postés 860 Date d'inscription   Statut Membre Dernière intervention   120
 
salut, cela va se faire automatiquement, vu que tu vas en base chercher la news, et par la même requête, tu vas demander la news numéro x, avec l'image x, quand tu afficheras la news y, tu afficheras l'image y, etc etc....
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
La variable que la requête SQL retournera ne contiendra que le nom du fichier.
Lorsque tu affiches l'image, avant d'écrire le nom du fichier, il faudra mettre le chemin du dossier.

Par exemple :
<img src="images/uploads/<?php echo $donnees['img']; ?>" alt="Image" />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Solar13 Messages postés 204 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour vos réponses, j'ai essayé mais je n'arrive pas au bon résultat.

Voici mon formulaire déja:


<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>





Et mon traitement, l'image ne s'upload pas déjà, je voudrais déjà essayer de faire ça correctement et l'enter dans la base, mais ne sais pas où le placer.


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'] . "'");
    }
}


0