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)
- Php if multiple conditions ✓ - Forum PHP
- The Realtek Network Controller was not found. - Forum Pilotes (drivers)
- If char ✓ - Forum Programmation
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';
}
}
?>

