Problème avec 'if'

Bonjour à toutes et à tous,
je code actuellement un site en php et j'ai un problème lors de l'affiche de celui-ci dans mon /localhost de mon myphpadmin.
ça m'affiche cette erreur
donc voilà je ne sais pas comment le résoudre.

3 réponses

  1. 	if(isset($_POST['article_titre'])) (isset($_POST['article_contenu'])){
    if(!empty($_POST["article_titre"]) AND !empty ($_POST['article_contenu')) {
    $article_titre = htmlspecialchars($_POST['article_titre']);
    $article_contenu = htmlspecialchars($_POST['article_contenu']);

    $ins = $bdd->prepare('INSERT INTO articles (titre, contenu, date_time_publication)
    VALUES (?,?,NOW())');
    $ins->execute(array($article_titre, $article_contenu));

    $message = 'Votre article a bien était posté';

    } else {
    $message = 'Veuillez remplir tout les champs';
    }
    }

    ?>


    voilà pour le code.
    1. Modérateur
      Alors
      Non seulement tu n'as pas lu ENTIEREMENT le lien que je t'ai donné.... vu que tu n'y a pas précisé le LANGAGE afin d'avoir la coloration syntaxique
      Mais en plus.. tu n'as pas lu la "solution" que je t'ai donné pour corrigé ton souci.
    2. Modérateur
      @jordane45Je rappel également que !EMPTY fais déjà un ISSET ...
      Tu n'as donc pas besoin de ton premier IF
    3. @jordane45Excuse moi j'ai voulu aller trop vite. Et si j'ai bien lu mais j'ai voulu t'envoyer le code avec l'erreur pour que tu puisses bien le voir.
    4. @jordane45Tu parles du if avant le ISSET ou celui avant le EMPTY ?
  2. Modérateur
    Bon...

    cette ligne
    if(isset($_POST['article_titre'])) (isset($_POST['article_contenu'])){
    

    Est Fausse et inutile

    Ensuite..
    Plusieurs choses dans ton code :
    - htmlspecialchars ne s'utilise JAMAIS pour traiter le contenu des variables à insérer en BDD
    ça ne doit servir que pour de l'affichage

    - Il faut activer la gestion des erreurs PDO dans la connexion et placer CHAQUE requête dans des blocs Try/CATCH
    https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

    -Et un peu de lecture en plus :
    https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

    Ce qui donne :

    <?php
    //affichage des erreurs Php
    error_reporting(E_ALL);
    ini_set('display_errors', TRUE);
    ini_set('display_startup_errors', TRUE);
    
    // connexion à la bdd
    // je te laisse compléter ici...
    
    
    // récupération PROPRE des variables AVANT de les utiliser
    //utilisation de l'écriture TERNAIRE pour initialiser tes variables correctement
    $article_titre = !empty($_POST['article_titre']) ? $_POST['article_titre'] : null;
    $article_contenu = !empty($_POST['article_contenu']) ? $_POST['article_contenu'] : null;
    
    if($article_titre && $article_contenu ){
      $sql = 'INSERT INTO articles 
              (titre, contenu, date_time_publication)
              VALUES (?,?,NOW())';
      $datas = array($article_titre, $article_contenu);
      //Try/CATCH permet d'intercepter les éventuelles erreurs SQL
      try{
        $ins = $bdd->prepare($sql);
        $ins->execute($datas);
      
        $message = 'Votre article a bien était posté';
      }catch(Exception $e){
        $message = 'Erreur dans la requête SQL';
      }
    }
    
    ?>