Problème avec 'if'

Mionster Messages postés 46 Statut Membre -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
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. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour,

    Ici, on poste son code directement ( en utilisant les balises de code) au lieu de mettre une image qui ne nous permet pas de copier/coller

    Pour les balises de code, merci de lire ENTIEREMENT ceci : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

    Et je vois déjà une erreur à la première ligne... tu as oublié de mettre un && entre tes deux conditions dans ton if.

    0
  2. Mionster Messages postés 46 Statut Membre
     
    	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.
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      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.
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Je rappel également que !EMPTY fais déjà un ISSET ...
        Tu n'as donc pas besoin de ton premier IF
        0
      2. Mionster Messages postés 46 Statut Membre > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Tu parles du if avant le ISSET ou celui avant le EMPTY ?
        0
      3. Mionster Messages postés 46 Statut Membre > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Excuse 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.
        0
  3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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';
      }
    }
    
    ?>
    
    0