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 :

faire appel à un input submit au sein d'un code php


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 18
    Par défaut faire appel à un input submit au sein d'un code php
    Bonjour,

    voici mon problème. J'ai un formulaire de contact que voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form method='post'>
     
        <inputtype="text" name="remplir" />
    <input type="submit"   name="ok1" VALUE="ok"/> 
        </form>
    et voici le code qui se charge de collecter les données pour les traiter:

    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
    if(isset($_POST['remplir']) AND isset($_POST['ok1'])){
    	if(!empty($_POST['remplir']) ){	
    		$remplir = $_POST['remplir'];
     
                    //on regarde si une donné est deja presente ou pas dans la bdd
    		$connect= mysql_connect('localhost','root','') or die('Error') ; 
    		mysql_select_db('bddsite') or die('database not found'); 
    		$recherche = "SELECT id FROM site WHERE remplir='$remplir' ";
    		$resultat = mysql_query($recherche);
    		$nonpresent= mysql_num_rows($resultat);
    		if($nonpresent >= 1){
     
                    //s'il existe déjà la donnée dans la bdd on demande à l'utilisateur de confirmer pour ajouter ou non la donnée précédemment remplis dans le formulaire 
     
    			echo "Voulez vous poursuivre ?
    			 <input  type='submit 'value='Oui' name='ok'></br>
    			 <input  type='submit' value='annuler' name='notok'>
    			 ";
     
    			if (isset($_POST['ok'])) {
    				// Enregistrement dans bdd
    				$query = sprintf("INSERT INTO data (remplir) VALUES ('%s')",
    				mysql_real_escape_string($remplir));
    				mysql_query($query) or die(mysql_error());
    				mysql_close();
     
    					}
     
     
    			if(isset($_POST['notok'])){
    				echo "message non rajouté a la bdd";
    			}
    }
    }

    me message de confirmation ("OUI/NON") s'affiche bien mais ça ne fais rien. La connexion a la bdd dans le cas du "OUI" ne se fais pas, et si on clique "NON" le message d'erreur ("message non rajouté a la bdd" n'apparait pas

    Merci d'avance si vous avez une solution à m'apporter

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il faut le faire en deux coups : formulaire de saisie -> formulaire de confirmation -> insertion
    Mais tu ne peux évidemment pas enchainer du HTML et du PHP comme ça.

    Au passage l'extension mysql est obsolète.
    Au moins si tu continues à l'utiliser, protege tes requêtes contre les injections SQL.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 18
    Par défaut
    Tu pourrais me donner un exemple ?

    Je ne veux pas que que la demande de confirmation soit visible avant d'avoir valider le formulaire. Si je fais comme tu as dis, je vais avoir deux formulaires tout le temps.

    PS: au passage petite correction, mais le problème persiste, j'ai oublié la balie form dans la confirmation

  4. #4
    Membre éprouvé Avatar de Yvan L
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2014
    Messages : 80
    Par défaut
    Bonjour,

    Je suis débutant en php, mais si j'avais à faire ce que tu souhaites, je ferais comme dans le code ci-dessous.

    Je ne connais pas non plus énormément le html, mais je crois qu'il faut des balises form pour les input, et tu n'en mets pas dans la zone "Voulez vous poursuivre...", et si c'est le cas, le ok ou le notok n'est pas pris en compte. ( il y a une erreur qui vient peut-être du copié/collé dans la même zone, un blanc après le premier submit, ce qui affiche une zone de texte et non un bouton)

    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
    <?php
     
    $html_str = '';
     
    if (!isset($_POST['remplir']) and (!isset($_POST['ok']) or (!isset($_POST['notok'])))){
      $html_str .= '<form method="post">';
      $html_str .= '<input type="text" name="remplir" />';
      $html_str .= '<input type="submit" name="ok1" value="ok"/>'; 
      $html_str .= '</form>';
    }
     
    if(isset($_POST['remplir'])){
     
      if(!empty($_POST['remplir']) ){	
     
        $remplir = $_POST['remplir'];
     
        //on regarde si une donné est deja presente ou pas dans la bdd
        $connect= mysql_connect('localhost','root','') or die('Error') ; 
        mysql_select_db('bddsite') or die('database not found'); 
        $recherche = "SELECT id FROM site WHERE remplir='$remplir' ";
        $resultat = mysql_query($recherche);
        $nonpresent= mysql_num_rows($resultat);
     
        if($nonpresent >= 1){
    //s'il existe déjà la donnée dans la bdd on demande à l'utilisateur de confirmer pour ajouter ou non la donnée précédemment remplis dans le formulaire
     
          $html_str .= 'Voulez vous poursuivre ?';
          $html_str .= '<form method="post">';
          $html_str .= '<input type="submit" value="Oui" name="ok"></br>';
          $html_str .= '<input type="submit" value="annuler" name="notok">';
          $html_str .= '</form>';
        }
      }
    }
     
    if (isset($_POST['ok'])) {
      // Enregistrement dans bdd
      $query = sprintf("INSERT INTO data (remplir) VALUES ('%s')",
    		   mysql_real_escape_string($remplir));
      mysql_query($query) or die(mysql_error());
      mysql_close();
    }
     
    if(isset($_POST['notok'])){
      $html_str .= "message non rajouté a la bdd";
    }
     
    print $html_str;
    ?>

Discussions similaires

  1. [DOM] Faire appel aux éléments de type input
    Par sliderman dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/05/2008, 22h18
  2. Réponses: 3
    Dernier message: 10/01/2008, 12h08
  3. Peut-on faire appel aux interruptions sous Windows ?
    Par lorenfar dans le forum Assembleur
    Réponses: 10
    Dernier message: 09/05/2005, 18h42
  4. Réponses: 4
    Dernier message: 26/01/2005, 13h08
  5. [débutant]Faire appel à une action d'une ActionList
    Par petitours dans le forum C++Builder
    Réponses: 6
    Dernier message: 12/03/2004, 22h53

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