IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Envoi de formulaire avec <fieldset>


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Envoi de formulaire avec <fieldset>
    Bonsoir,

    J'ai un petit souci avec l'un de mes formulaires (j'ai mis le code source ci-dessous).
    Ma requête SQL ne fonctionne pas avec le code tel quel. Pourtant, quand je retire les 3 <fieldset></fieldset>, la requête fonctionne et arrive bien dans ma BDD !
    Je suis obligé de garder ces <fieldset>, sinon, ma page ne ressemble plus à rien.. (voir screen ci-dessous)

    En vous remerciant pour votre aide,

    à bientôt !

    Extrait de mon code PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    <?php
    date_default_timezone_set('Europe/Paris');
    $date = ''.date('d/m/Y').' à '.date('H:i:s').'';
        if($_GET[action]=="enregistrer") {
          $a = addslashes($_POST["titre"]);
          $b = addslashes($_POST["contenu"]);
          $image = addslashes($_POST["image"]);
          $c = addslashes($_POST["auteur"]);
          $d = addslashes($_POST["description"]);
          $e = addslashes($_POST["theme"]);
          if(!empty($a) AND !empty($b)) {
          $req = $bdd->prepare('INSERT INTO `articles` (titre, theme, description, date, image, auteur, contenu) VALUES ("'.$a.'", "'.$e.'", "'.$d.'", "'.$date.'", "'.$image.'", "'.$c.'", "'.$b.'")');
          $req->closeCursor();
          $req->execute();
          header("Location: ?m=1");
        } else {
          header("Location: ?m=2");
        } } if($_GET[m]=="1") {
          echo('<center><div class="alert alert-success" style="width:750px;"><center>La news a été ajoutée !</center></div></center>');
        } if($_GET[m]=="2") {
          echo('<center><div class="alert alert-error" style="width:750px;"><center><b>ATTENTION !</b> Veuillez remplir tous les champs !</center></div></center>');
        }
        ?>	
        <form id="wizard_with_validation" action="?action=enregistrer" method="POST">
     
       <h3>Présentation de l'article</h3>
                                    <fieldset>
                                        <div class="form-group form-float">
                                            <div class="form-line">
                                                <input type="text" class="form-control" name="titre" required>
                                                <label class="form-label">Titre de l'article *</label>
                                            </div>
                                        </div>
                                        <div class="form-group form-float">
                                            <div class="form-line">
                                                <input type="text" class="form-control" name="theme" id="password" required>
                                                <label class="form-label">Thème de l'article *</label>
                                            </div>
                                        </div>
                                        <div class="form-group form-float">
                                            <div class="form-line">
                                                <input type="text" class="form-control" name="description" required>
                                                <label class="form-label">Description de l'article * (1-2 phrase)</label>
                                            </div>
                                        </div>
                                    </fieldset>
     
                                    <h3>Illustration de l'article</h3>
                                    <fieldset>
                                        <div class="form-group form-float">
                                            <div class="form-line">
                                                <input type="text" name="image" class="form-control" required>
                                                <label class="form-label">Image de l'article (mettez un lien du web ou de votre médiathèque) *</label>
                                            </div>
                                        </div>
                                        <div class="form-group form-float">
                                            <div class="form-line">
                                                <input type="text" name="auteur" class="form-control" value="<?php echo($row["nom"]); ?>" required>
                                                <label class="form-label">Qui est l'auteur de cet article ? *</label>
                                            </div>
                                        </div>
                                                                       </fieldset>
     
                                    <h3>Texte de l'article</h3>
                                    <fieldset>
                    Contenu de votre article : 
    <textarea name="contenu" class="ckeditor" id="editor"></textarea>
    <br>
    <label for="acceptTerms-2">AVANT DE VALIDER : Copiez votre article (sélectionnez-le, clic-droit, copier) et collez-le sur un document type bloc-note ou Word.<br>
    Nous vous conseillons cela car selon votre temps d'activité sur le panel, vous pouvez être déconnecté et votre article sera perdu.</label>
                                    <center><button class="btn btn-success" onClick="javascript:valide();" type="submit">POSTER VOTRE ARTICLE !</button></center>
     
                    </fieldset>                                
     
                                </form>
    Voici une image simplificatrice de mon problème :

    Nom : fieldset.png
Affichages : 332
Taille : 45,4 Ko

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    PHP ne voit pas de différence entre les champs à l'intérieur d'un fieldset et ceux à l'extérieur d'un fieldset, pourvu qu'ils soient dans le même form que le bouton submit.
    Cependant, tu as une fonction Javascript qui est lancée au clic sur le bouton submit. C'est peut-être cette fonction qui pose problème.

    Au passage, tu as une requête préparée dans laquelle tu passes les paramètres directement en dur. C'est un peu comme charger une brouette pour porter ensuite la brouette dans tes bras.
    Une syntaxe qui utilise correctement la préparation de la requête serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $req = $bdd->prepare('INSERT INTO `articles` (titre, theme, description, date, image, auteur, contenu) VALUES (:a, :e, :d, :date, :image, :c, :b)');
    $req->execute([
        ':a' => $_POST["titre"],
        ':b' => $_POST["contenu"],
        ':image' => $_POST["image"],
        ':c' => $_POST["auteur"],
        ':d' => $_POST["description"],
        ':e' => $_POST["theme"]
    ]);
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Cette fonction JS était juste une boite de dialogue. Même en la retirant, ça ne fonctionne pas.
    J'ai vraiment l'impression que c'est la mise en page "d'étapes" qui pose problème, je n'arrive pas à la faire fonctionner.. c'est étrange...

    Merci pour votre aide.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tu as fait le debug basique qui consiste à afficher le contenu de $_POST via un var_dump, histoire de voir ce que PHP reçoit ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Celira Voir le message
    Tu as fait le debug basique qui consiste à afficher le contenu de $_POST via un var_dump, histoire de voir ce que PHP reçoit ?
    Non.. Je n'avais pas encore fait ça auparavant..

  6. #6
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    action dans $_GET est sans ‘ ou ".
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

Discussions similaires

  1. Retour d'un envoi de formulaire avec un input file
    Par kawaï dans le forum jQuery
    Réponses: 1
    Dernier message: 17/04/2015, 14h04
  2. Envoi de formulaire avec piece jointe
    Par remy182 dans le forum Langage
    Réponses: 2
    Dernier message: 20/05/2014, 09h04
  3. [HTML] Envoi dun formulaire avec un lien au lieu d'un bouton
    Par Mysticlolly dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 19/05/2010, 12h30
  4. [RegEx] [Formulaire]= problème d'envoi de formulaire avec pièces jointes
    Par lyamarin dans le forum Langage
    Réponses: 22
    Dernier message: 03/04/2007, 13h29
  5. Envoi de formulaire avec attribution de valeur
    Par nicovoa dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/08/2006, 18h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo