Problème avec 'if'

Mionster Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 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

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
Mionster Messages postés 40 Date d'inscription   Statut Membre Dernière intervention  
 
	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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > jordane45 Messages postés 38486 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
Mionster Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Tu parles du if avant le ISSET ou celui avant le EMPTY ?
0
Mionster Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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