Veuillez vous connecter ou créer un compte pour suivre ce topic
Ce topic est suivi par: Personne...
Ce topic a été résolu
Auteur Sujet: Système d'articles

Marius

Messages: 138

Bonjour à tous ! Grand sourire

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 ! Clin d'oeil

En vous remerciant par avance,
Cordialement,
Marius
Publicité

julienb

Messages: 34

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

Marius

Messages: 138

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

Messages: 82

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 Sourire

Marius

Messages: 138

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

Marius

Messages: 138

Résolu !


Veuillez vous connecter ou créer un compte pour poster une réponse