Cellier Ludovic

Bonjour,

Apres avoir résolut mon problème de boucle de redirection. J'ai maintenant un souci avec l'envoie d'un formulaire.
Lorsque j'appuie sur le bouton publier j'ai le message d'erreur "Veuillez remplir tous les champs" qui s'affiche (que les champs soit remplis ou pas).
J'ai fais un var_dump de $_POST le tableau n'est pas vide (quand les champs sont remplis).
Je dois avoir une petite erreur dans mon code mais ou ?

Merci de votre aide.
Voici mon code :

"
<div class="container">

<h2> Poster un article </h2>

<?php

if (isset($_POST['post'])) {

$titre = htmlspecialchars (trim($_POST['titre']));
$contenu = htmlspecialchars (trim($_POST['contenu']));
$publie = isset ($_POST['publie']) ? "1" : "0";

$erreurs = [];

if(empty ($titre) || ($contenu)){

$erreurs['vide'] = "Veuillez remplir tous les champs !!!";
var_dump ($_POST);/*test du formulaire */
}

if (!empty ($_FILES['image']['name'])) {

$fichier = $_FILES['image']['name'];
$img_extentions = ['.png', '.jpg', '.jpeg', '.gif', '.PNG', '.JPG', '.JPEG', '.GIF'];
$extention = strrchr($fichier, '.');

if(!in_array ($extention,$img_extentions)) {

$erreurs ['image'] = "Votre fichier n'est pas valide.";
}

}

if(!empty ($erreurs)) {

?>

<div class="container_contenu w80">

<div class="info fond_rouge texte_blanc">

<?php

foreach($erreurs as $erreur) {

echo $erreur."<br/>";

}

?>

</div>

</div>

<?php

}

}
?>

<form method="post" enctype="multipart/form-data">

<div class="container w100">

<div class="input_field w100">

<label for="titre"> Titre de l'article</label>
<input type="text" name="titre" id="titre" class="w60" />

</div>

<div class="input_field w100">

<label for="contenu"> Contenu de l'article</label>
<textarea name="contenu" id="contenu" class="w100" rows="350"> </textarea>

</div>

</div>

<div class="container w100">

<div class="input_field">

<input type="file" name="image" />

</div>

</div>

<div class="container w100">

<div class="input_field">

<label for="public">Public</label>
<input type="checkbox" name="publie" id="public" />

</div>

</div>

<div class="input_field">

<button type="submit" name="post"> Publier </button>

</div>

</form>

</div>

"

Le 12/01/2016 à 06:47
Nicwalle

Tu as oublié une partie de ta condition (le EMPTY que j'ai rajouté):
if(empty ($titre) || EMPTY($contenu)){

$erreurs['vide'] = "Veuillez remplir tous les champs !!!";
var_dump ($_POST);/*test du formulaire */
}

Le 12/01/2016 à 15:34
Cellier Ludovic

Merci pour ta réponse rapide, est vraiment désolé pour cette faute stupide de ma part.
Pourtant j'ai relu plusieurs fois cette partie du code car je me doutais que l'erreur était dans la condition sans voir qu'il manquait un "empty" pour teste la seconde variable.

Continu tes tutos sont très bien !

Le 13/01/2016 à 05:48
Connectez-vous pour pouvoir répondre