A voir également:
- Problème avec 'if'
- If exist - Forum Java
- The realtek network controller was not found. if deep sleep mode is enabled please plug the cable ✓ - Forum Pilotes (drivers)
- If char ✓ - Forum Programmation
- The Realtek Network Controller was not found. - Forum Pilotes (drivers)
- Php if multiple conditions ✓ - Forum PHP
3 réponses
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.
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.
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.
Bon...
cette ligne
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 :
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'; } } ?>