Erreur form en php

Eléphanteau du PHP | 25 Messages

26 juin 2019, 12:03

Bonjour

Mon form ne fonctionne pas, je ne sais pas si le chemin de la fonction est correcte ou si c'est autre chose.

ERREUR:

An invalid form control with name='Contenu' is not focusable.


code form:

<form action="add_post.php" method="post" class="form-example">

    <div class="form-example">
        <label for="name">Titre du billet:
            <input type="text" name="Titre" id="Titre" required></label>
    </div>

    <div class="form-example">
        <div><label for="name">Contenu: </label></div>
        <div class="input_text"> <textarea id="textarea" name="Contenu" required></textarea></div>
        <!-- <input type="text" name="Contenu" id="Contenu" required> -->
    </div>

    <div class="form-example">
        <input type="submit" name="ajouter" value="Ajouter">
    </div>

</form>


Code Fonction php (Pas tres genial de la mêttre apres la fonction de chargement de la page, je sais, mais je ne pense pas que ce soit le problème):

<?php

function add_post_model()
{
    $add_post_default_code = file_get_contents("view/add_post_default_code.html");
    return $add_post_default_code;
}

require "config.php";

echo "INSIDE<br>";

// DEFINE DATABASE CONNECTION - PDO
try {
    $bdd = new PDO('mysql:host=localhost;dbname=' . $Database_Name, $Database_User, $Database_Password);

    echo "CON OK<br>";

} catch (\Throwable $e) {
    die('Erreur : ' . $e->getMessage());
}

echo "AFTER CON<br>";

// BOUTON - INSERT TO DATABASE
if ($_SERVER['REQUEST_METHOD'] == "POST" AND isset($_POST["Titre"])) {
    
    echo "INSIDE IF<br>";

    $Titre = $_POST["Titre"];

    $Contenu = $_POST["Contenu"];

    // PREPARE QUERY - use prepare pour les accents sur les lettres
    
    $req = $bdd->prepare("INSERT INTO billets(titre, contenu, date_creation) values (?, ?, NOW()) ");

    $req->execute(array($Titre, $Contenu));

    header('Location: index.php');

    exit();

}


Dossiers:

_layout.html
view/add_post.php
view/add_post_default_code.html

Le chemin du form action= add_post.php est'il correcte?

Devrais-je crée une fonction seule pour l’exécution du formulaire?


Merci
Rui

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

26 juin 2019, 16:52

Hello !

Il ne s'agit pas d'une erreur php, mais d'une erreur à la soumission du formulaire. Le navigateur te dit que l'un des champs de ton formulaire (dont le nom est Contenu) est requis (attribut required) alors que celui-ci n'est pas accessible à l'utilisateur (non visible, etc.) et qu'il ne peut donc pas être renseigné.

A voir si dans ton css il n'y a rien qui empêche le champ d’apparaître à l'écran et à défaut tu peux essayer de virer la ligne en commentaire :
<!-- <input type="text" name="Contenu" id="Contenu" required> -->

C'est peut être simplement elle qui pose problème... même si en principe, elle ne devrait pas :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...