Problème avec 'if'

Fermé
Mionster Messages postés 40 Date d'inscription dimanche 16 juillet 2017 Statut Membre Dernière intervention 18 mai 2023 - 8 nov. 2020 à 19:20
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 8 nov. 2020 à 21:18
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
8 nov. 2020 à 19:37
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 dimanche 16 juillet 2017 Statut Membre Dernière intervention 18 mai 2023
8 nov. 2020 à 20:25
	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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
8 nov. 2020 à 20:32
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
8 nov. 2020 à 20:33
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 dimanche 16 juillet 2017 Statut Membre Dernière intervention 18 mai 2023 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
8 nov. 2020 à 21:05
Tu parles du if avant le ISSET ou celui avant le EMPTY ?
0
Mionster Messages postés 40 Date d'inscription dimanche 16 juillet 2017 Statut Membre Dernière intervention 18 mai 2023 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
8 nov. 2020 à 21:04
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 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié le 8 nov. 2020 à 21:18
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