Page 1 sur 1

Plusieurs fieldset - formulaire

Posté : 11 oct. 2018, 00:12
par Gload
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)

En vous remerciant pour votre aide,
à bientôt ! :)
<?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>
ILLUSTRATION :

Image

Re: Plusieurs fieldset - formulaire

Posté : 11 oct. 2018, 12:56
par kevin254kl
Salut,

Curieux, si tu enlève un fieldset seulement une partie des données est envoyé? Et si tu utilises des div? Que dit la console javascript?

Re: Plusieurs fieldset - formulaire

Posté : 11 oct. 2018, 13:48
par Reka
Fonctionne pas, ça veut dire que ça ne poste rien ou juste une partie des données ?
En l'état, j'ai testé ton code (sans la CSS, et donc sans les onglets), tout passe, chez moi...

Re: Plusieurs fieldset - formulaire

Posté : 11 oct. 2018, 14:18
par Gload
Salut,

Curieux, si tu enlève un fieldset seulement une partie des données est envoyé? Et si tu utilises des div? Que dit la console javascript?
Rien ne s'envoie, je ne comprends pas...
A propos...
C'est étonnant... je ne sais pas quoi faire..

Re: Plusieurs fieldset - formulaire

Posté : 11 oct. 2018, 14:29
par Gload
Fonctionne pas, ça veut dire que ça ne poste rien ou juste une partie des données ?
En l'état, j'ai testé ton code (sans la CSS, et donc sans les onglets), tout passe, chez moi...
C'est vraiment juste les <fieldset> qui bloquent l'envoi, c'est incompréhensible ! Rien ne se poste..
Je ne pense pas qu'il y ait un rapport avec le css quand même

Re: Plusieurs fieldset - formulaire

Posté : 11 oct. 2018, 14:29
par Gload
Fonctionne pas, ça veut dire que ça ne poste rien ou juste une partie des données ?
En l'état, j'ai testé ton code (sans la CSS, et donc sans les onglets), tout passe, chez moi...
C'est vraiment juste les <fieldset> qui bloquent l'envoi, c'est incompréhensible ! Rien ne se poste..
Je ne pense pas qu'il y ait un rapport avec le css quand même

Re: Plusieurs fieldset - formulaire

Posté : 11 oct. 2018, 15:02
par Reka
Ca paraît techniquement improbable qu'un fieldset ait le pouvoir de tout bloquer. C'est peut-être un truc concomitant, mais c'est pas ça qui fait que ça passe ou ça casse, je pense qu'il faut chercher plus loin.

Concrètement, ce que j'observe,
- c'est que je ne vois pas de connexion à ta base de données. Il y a un insert mais ni connect ou new PDO au préalable (pas même un include() qui me laisserait penser que tu as effectué la connexion à ta DB ?)

    $req = $bdd->prepare('INSERT INTO `articles` (titre, theme, description, date, image, auteur, contenu) VALUES ("'.$a.'", "'.$e.'", "'.$d.'", "'.$date.'", "'.$image.'", "'.$c.'", "'.$b.'")');
pourquoi tant de guillemets ?

Pourquoi tu mets un closeCursor() et pourquoi AVANT l'execute() ?

Attention à la sécurité, pense aux placeholders !
https://phpdelusions.net/pdo_examples/insert

Parenthèse : la balise <center> est obsolète, il faut normalement mettre un div avec class et CSS qui centre (text-align)
https://developer.mozilla.org/fr/docs/W ... ent/center

Re: Plusieurs fieldset - formulaire

Posté : 11 oct. 2018, 16:12
par kevin254kl
Entre parenthèse, ton form est en POST et tu test en GET ton action?

Re: Plusieurs fieldset - formulaire

Posté : 11 oct. 2018, 16:46
par Gload
Ca paraît techniquement improbable qu'un fieldset ait le pouvoir de tout bloquer. C'est peut-être un truc concomitant, mais c'est pas ça qui fait que ça passe ou ça casse, je pense qu'il faut chercher plus loin.

Concrètement, ce que j'observe,
- c'est que je ne vois pas de connexion à ta base de données. Il y a un insert mais ni connect ou new PDO au préalable (pas même un include() qui me laisserait penser que tu as effectué la connexion à ta DB ?)

    $req = $bdd->prepare('INSERT INTO `articles` (titre, theme, description, date, image, auteur, contenu) VALUES ("'.$a.'", "'.$e.'", "'.$d.'", "'.$date.'", "'.$image.'", "'.$c.'", "'.$b.'")');
pourquoi tant de guillemets ?

Pourquoi tu mets un closeCursor() et pourquoi AVANT l'execute() ?

Attention à la sécurité, pense aux placeholders !
https://phpdelusions.net/pdo_examples/insert

Parenthèse : la balise <center> est obsolète, il faut normalement mettre un div avec class et CSS qui centre (text-align)
https://developer.mozilla.org/fr/docs/W ... ent/center
Je vais me référer un peu à vos liens, je n'ai pas beaucoup d'expérience dans le développement et ça faisait un moment que je n'avais pas mis les mains dans le cambouis !

Mon script est bien relié à ma BDD plus haut dans la page.
Comme je l'ai dis, c'est vraiment la mise en forme qui empêche l'envoie à ma BDD. Quand je retire ce système d'étapes, ça fonctionne...

Re: Plusieurs fieldset - formulaire

Posté : 11 oct. 2018, 16:50
par Gload
Entre parenthèse, ton form est en POST et tu test en GET ton action?
C'est à dire ??

Re: Plusieurs fieldset - formulaire

Posté : 11 oct. 2018, 17:12
par Reka
Entre parenthèse, ton form est en POST et tu test en GET ton action?
C'est à dire ??
<form id="wizard_with_validation" action= "?action=enregistrer" method="POST">

GET
POST