Système d'articles

Suivre ce topic
Ce topic est suivi par : Personne...
Ce topic a été résolu
M69-74

M69-74 Le 6 avril 2016 à 19:35 (Édité le 25 janvier 2019 à 17:50)

Bonjour à tous ! 😄

Alors en fait, je voudrais faire un système d'article. En gros, sur ma page admin_articles.php, je voudrais que l'administrateur puisse poster un article (avec une image, titre, contenu etc...), mais le problème c'est que j'ai aucune idée de comment faire la vérification, notamment pour enregistrer l'image dans ma bdd... Je voudrais ensuite afficher tout les articles sur une autre page articles.php sur laquelle il y aura les titres d'articles avec leur image et quand on clique sur le titre ou sur l'image, ca nous redirige vers articles.php?id=iddelarticle.

Voici le code du formulaire pour poster l'article (admin_articles.php) :
<form method="POST" style="display:block; margin-left:25px;">
     <input type="text" placeholder="Titre de l'article" name="title_articles" style="margin-right:15px; width:315px;"><input type="text" name="name_articles" placeholder="Auteur" value="<?= $_SESSION['pseudo'] ?>">
     <br /><br />
     <textarea placeholder="Contenu de l'article" name="content_articles" style="width:500px;"></textarea>
     <br /><br />
     <input type="file" name="image"><br /><br />
     <input type="submit" value="Poster" name="post_articles">
</form>
Et voici ma table dans laquelle je voudrais enregistrer les articles (table nommée ''billets'') :

id(INT 11) Index primary, A.I
titre(varchar 255)
contenu(text)
date_creation(datetime)
image(varchar 255)


J’espère que je suis clair, sinon, redemandez-moi ! 😉

En vous remerciant par avance,
Cordialement,
Marius
julienb

julienb Le 6 avril 2016 à 20:50

Salut,
il faut que tu enregistres le chemin vers ton image dans la base de données. Je te conseille de récupérer le nom de ton image à l'upload et de le modifier de façon à ce que chaque nom d'image soit unique. Tu peux pour ça générer une chaine de caractères ne contenant que des minuscules/majuscules/chiffres par exemple.
Pour la table dans ta base de données il te faudrait un ID_image auto incrémenté, un ID_article qui correspond à ton article (clé étrangère) et le chemin vers ton image au minimum.
Ensuite, ça ne concerne pas ta question mais par rapport à ton souhait d'afficher de cette façon :
articles.php?id=iddelarticle
Il faut savoir qu'une url de ce genre là sera mal référencée. Il faut mieux une url comme les articles de PrimFX c'est à dire:
article/nom-article-id 
 En gros tu as besoin d'un routeur php ou d'une bidouille avec un .htaccess
M69-74

M69-74 Le 7 avril 2016 à 17:34 (Édité le 7 avril 2016 à 17:37)

Hello  Tout d'abord, merci pour ta réponse !
Je me suis finalement dis, avant de mettre une image, je vais mettre le contenu. Mais le truc c'est qu'avec le code si-dessous, ca m’affiche bien "L'article à bien été posté", mais je n'ai rien dans ma bdd. Que est le problème ?

<?php
  if(isset($_POST['post'])){
     $title = htmlspecialchars($_POST['title']);
     $auteur = htmlspecialchars($_SESSION['pseudo']);
     $content = htmlspecialchars($_POST['content']);
     if(isset($title) AND !empty($title) AND isset($auteur) AND !empty($auteur) AND isset($content) AND !empty($content)){
        $insertart = $bdd->prepare('INSERT INTO billets(titre, contenu, auteur) VALUES(?, ?, ?)');
        $insertart->execute(array($title, $content, $auteur));
        $error = "L'article à bien été posté !";
        } else {
            $error = "Veuillez remplir tout les champs !";
        }
     }
   }
?>

<form method="POST" action="">
     <input type="text" placeholder="Titre de l'article" name="title"><input type="text" placeholder="Pseudo" value="<?= $_SESSION['pseudo'] ?>" name="name" style="margin-left:15px;" ><br /><br />
     <textarea placeholder="Contenu de l'article" name="content" style="width:355px;"></textarea><br /><br />
     <input type="submit" value="Poster" name="post">
     <div class="error" style="color:red;">
         <?php 
           if(isset($error)){
              echo $error;
           }
        ?>
     </div>
</form>
Merci par avance !
Clouder

Clouder Le 7 avril 2016 à 20:05

As tu une connexion à ta base de données ? 

Si oui alors mais un  'echo $auteur'; pour savoir si tu récupère bien quelque chose sinon rajoute la connexion à ta base de données 😀
M69-74

M69-74 Le 7 avril 2016 à 20:25 (Édité le 7 avril 2016 à 20:28)

Hello ! Oui j'ai bien la connexion à la base de donnée ... Et j'ai bien le pseudo de la session active en faisant un echo de $auteur ...
M69-74

M69-74 Le 25 avril 2016 à 08:25

Résolu !
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte