Bonjour,
Je débutes en objet et par la même occasion avec PDO en clair j'essaye de passer a un niveau supérieur.
Je suis donc sur un système de news et j'ai
- Une classe news.
- Et 3 fonctions dans cette classe déclarées en public bien sur.
Code de ma classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 <?php class news { /*---------------------------------------------INSERTION---------------------------------------------------------*/ public function InsertNews($titreNews, $contenueNews, $auteurNews, $dateNews, $imageNews){ //Déclaration $err_cpt = 0; $err_titre = FALSE; $err_contenue = FALSE; $err_auteur = FALSE; $err_image = FALSE; //Gestion des erreur if(empty($titreNews)) $err_titre = TRUE; $err_cpt++; if(empty($contenueNews)) $err_contenue = TRUE; $err_cpt++; if(empty($auteurNews)) $err_auteur = TRUE; $err_cpt++; if(empty($imageNews)) $err_image = TRUE; $err_cpt++; //Si err_cpt = 0 on Insère sinon on listes les erreurs if($err_cpt == 4){ //Requête $bdd = new PDO('mysql:host=localhost;port=3306;dbname=blog', 'root', ''); //Connection $requete = $bdd -> prepare ('INSERT INTO news (titre, contenue, auteur, date, image) VALUES(:titre, :contenue, :auteur, :date, :image)'); $req = exec(array( 'titre' => $titreNews, 'contenue' => $contenueNews, 'auteur' => $auteurNews, 'date' => $dateNews, 'image' => $imageNews )); echo ("News insérée corectement."); } else{ //Erreur echo "Insertion impossible ".$err_cpt; if($err_titre == TRUE) echo("Vous n'avez pas précisé de tître."); if($err_contenue == TRUE) echo("Votre news n'a pas de contenue."); if($err_auteur == TRUE) echo("Vous n'avez sélectionné aucun auteur."); if($err_image == TRUE) echo("Votre news n'a pas d'image."); } } /*---------------------------------------------MODIFICATION---------------------------------------------------------*/ public function updateNews($choixNews){ } /*---------------------------------------------SUPPRESSION---------------------------------------------------------*/ public function deleteNews($choixNews){ } } ?>
Code de mon formulaire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <form method="post" action="news-insertion-valid.php"> Tître: <input type="text" name="titre" /><br /> Contenue:<br /> <textarea name="contenue">a</textarea><br /> Auteur: <input type="text" name="auteur" /><br /> Images: <input type="text" name="image" /><br /> <input type="submit" value="Poster la news" /> </form>
Code de l'appel de ma classe (en clair la validation de mon formulaire)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php require("../../class/news.class.php"); $news = new news(); $news -> InsertNews($_POST['titre'], $_POST['contenue'], $_POST['auteur'], "00/00/0000", $_POST['image']); ?>
Voilà maintenant, mon soucis.
Donc en clair j'initialise un compteur $err_cpt a 0 ainsi que mes variable
err_tire, contenu etc a FALSE.
Ensuite je teste que les champs sont bien renseignés donc si $titreNews est vide (champ titre de mon formulaire vu que j'envois le contenu de $_POST['titre'] a ma fonction) n'est pas renseigné je la met a TRUE et j'incrémente mon compteur.
Ensuite si mon compteur $err_cpt == 0 alors tous les champs sont renseigné, on est content et on insère dans la base sinon on affiche une erreur et le nombre d'erreur.
Maintenant passons au problème ma structure de test if considère que err_cpt est TOUJOURS égal à 4 sans qu'aucun J'ai donc toujours mon message insertion impossible 4
De plus ce passage
N'est absolument pas interprété.A
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php if($err_titre == TRUE) echo(Vous n'avez pas précisé de tître.); if($err_contenue == TRUE) echo(Votre news n'a pas de contenue.); if($err_auteur == TRUE) echo(Vous n'avez sélectionné aucun auteur.); if($err_image == TRUE) echo(Votre news n'a pas d'image.); ?>
lors pour le premier problème $err_cpt toujours égal a 4 je vois une énorme erreur de logique (passage du procédural à l'objet surement) en revanche pour le fait qu'une portion du code n'est pas interprété la je vois pas du tout.
En espérant tomber sur un virtuose de la programmation objet et php, je vous remercie.
Partager