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

Langage PHP Discussion :

Les valeurs s'insèrent dans ma base de données sans que je clique sur le bouton


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut Les valeurs s'insèrent dans ma base de données sans que je clique sur le bouton
    bonjour,
    J'ai créé un formulaire, et après avoir saisi les valeurs des champs et cliqué sur le bouton "valider", ces valeurs devraient s'insérer dans la base de données. Mais le problème, c'est qu'elles s'insèrent toujours à chaque chargement de page sans que je clique sur le bouton "valider".
    Je ne comprends pas, car j'ai mis une condition.
    Code:
    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
    ?php
    /*Connexion BDD*/
    include("connexion.php");
    session_start();
     
    if (isset($_POST['submit'])) {				
    //Récupération des valeurs des champs pour la table structure	
    				$typologie=$_POST['typologie'];
    				$nom_contact=$_POST['nom_contact'];
    				$thematique=$_POST['thematique'];
    				$desc_contact=$_POST['desc_contact'];
    				$nom_struct=$_POST['nom_struct'];
    				$nom_service=$_POST['nom_service'];
    				$adres_struct=$_POST['adres_struct'];
    				$tel_struct=$_POST['tel_struct'];
    				$fax_struct=$_POST['fax_struct'];
    				$page_web=$_POST['page_web'];
    				$mail_struct=$_POST['mail_struct'];
    				$comment_struct=$_POST['comment_struct'];
    				//Insérer dans la BDD dans la table structure
    				$bdd->exec("INSERT INTO structure VALUES (null,'$typologie','$nom_contact','$thematique','$desc_contact','$nom_struct','$nom_service','$adres_struct','$tel_struct','$fax_struct','$page_web','$mail_struct','$comment_struct')");
    }
     
    <!--Formulaire------------------------------------------->
    		<div class="body">
    			<form action="enter_dat.php" method="post" id="sky-form" class="sky-form">
    				<header>Formulaire de saisie</header>
                                     <footer>
    					<button type="submit" class="button" name="submit">Valider</button>
    					<a href="rlf2.php" class="button button-primary">Rechercher</a>
    			</footer>
    			</form>					
    		</div>
    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['submit'])) {
    Je ne vois pas de champs submit dans ton formulaire, ton bouton n'est pas un champs du formulaire envoyé un post, il permet juste l'envoi du formulaire.
    Ton test devrait porter sur une variable du formulaire qui est requise, par exemple sans savoir $_POST['nom_contact'], il est conseillé de mettre un !empty à la suite de isset, si biensur tu n'autorises pas les champs vides, à toi de voir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['nom_contact']) && !empty($_POST['nom_contact'])) {

  3. #3
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    Merci beaucoup pour votre réponse.
    Je croyais que la condition sur le bouton suffisait! ça marche beaucoup mieux.

    Mais il me reste un soucis, c'est que :
    Si je saisis une valeur pour nom_contact et que j'actualise la page, une valeur rentre dans la BDD et il s'agit de la dernière valeur insérée en BDD

  4. #4
    Membre confirmé
    Homme Profil pro
    Déveleoppeur Web/Mobile
    Inscrit en
    Avril 2013
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Déveleoppeur Web/Mobile
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 330
    Points : 545
    Points
    545
    Par défaut
    Le fait d'actualiser la page va renvoyer le formulaire avec les données précédemment envoyé, c'est tout à fait normal car ton formulaire et le traitement de ton formulaire sont sur la même page.
    L'idéal serait de séparer le traitement de ta page formulaire, et de rediriger vers ta page (avec la fonction header) après ton traitement. L'actualisation n'aura plus pour effet d'envoyer ton formulaire mais juste de l'afficher .

  5. #5
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    Merci bcp pour ces explications.
    J'ai séparé le traitement de la page formulaire et ça marche très bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/07/2011, 12h16
  2. Réponses: 3
    Dernier message: 05/12/2010, 12h27
  3. Réponses: 1
    Dernier message: 30/03/2009, 17h05
  4. [MySQL] Enregistrer les images et PDF dans la base de données
    Par ledisciple dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 06/10/2008, 13h18

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