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 :

Double requete avec _GET mais pas avec _POST


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Double requete avec _GET mais pas avec _POST
    Bonjour

    j'écris car j'ai un problème un peu bizarre j'avoue que je n'arrive pas à trouver d'où ça vient. Ca doit être tout bête mais j'ai trop le nez dedans j'ai vraiment besoin d'aide.

    Je fais un formulaire simple pour ajouter une ligne à une table types_produit toute bête.
    Or quand je passe mes données par une méthode post pas de soucis tout marche bien, par contre si je passe avec une méthode get alors l'ajout se fait en double.

    Voici le code ci-dessous :
    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
    77
     
    // ---------------------------------------------
    // Récupération des valeurs passées en paramètres
    // ---------------------------------------------
    $tp_statut		= $_POST["tp_statut"];
    $tp_id		= $_POST["tp_id"];
    $tp_code	= $_POST["tp_code"];
    $tp_nom		= $_POST["tp_nom"];
    $tp_desc	= $_POST["tp_desc"]; 
    $tp_lien	= $_POST["tp_lien"];
     
    /*		$tp_statut		= $_GET["tp_statut"];
    		$tp_id		= $_GET["tp_id"];
    		$tp_code	= $_GET["tp_code"];
    		$tp_nom		= $_GET["tp_nom"];
    		$tp_desc	= $_GET["tp_desc"]; 
    		$tp_lien	= $_GET["tp_lien"]; 
    */
    if (!isset($tp_statut)) $tp_statut = "";
     
    switch ($tp_statut)
    {
    	// ---------------------------------------------
    	// 1ERE ETAPE : affichage du formulaire
    	// ---------------------------------------------
    	case "" :
    		// Ecriture du formulaire
    		// ------------------------
    		printf("<form action=\"do_m.php\" method=\"post\" name=\"form_tp_add\"> ");
    		printf("<input name=\"tp_statut\" type=\"hidden\" value=\"a_inserer\" /> \n");
    		printf("<input name=\"session\" type=\"hidden\" value=\"$id_session\" /> \n");
    		printf("<input name=\"kelaction\" type=\"hidden\" value=\"tp_add\" /> \n");
    		// CODE DU TYPE DE PRODUIT
    		printf("Donnez le code du type de produit : ");
    		printf("<input type=\"text\" name='tp_code' id=\"tp_code\" value=\"$tp_code\" > ");
    		printf("<span id=\"id_reponse1\" > </span>");
    		// NOM DU TYPE DE PRODUIT
    		printf("Donnez le nom qui s'affichera sur le site : ");
    		printf("<input name=\"tp_nom\" type=\"text\" value=\"$tp_nom\" /> \n");
    		printf("<span id=\"id_reponse2\" > </span>");
    		// DESCRIPTION DU PRODUIT
    		printf("Donnez une description assez courte du type de produit : ");
    		printf("<textarea name=\"tp_desc\" cols=\"64\" rows=\"4\" type=\"text\"/>$tp_desc</textarea> \n");
    		// NOM DU TYPE DE PRODUIT
    		printf("Donnez le lien vers une page qui decrivrait complet : ");
    		printf("<input name=\"tp_lien\" type=\"text\" value=\"$tp_lien\" /> \n");
    		printf("<span id=\"id_reponse3\" > </span>");
    		// VALIDATION
    		printf("<input name=\"val\" value=\"Valider\" type=\"submit\" />\n");
    		printf("</form>");
    		break;
    // ---------------------------------------------
    // 2EME ETAPE : AJOUT
    // ---------------------------------------------
    	case "a_inserer" :
    		// Ajout dans la table 
    		$query_add_tp = "INSERT INTO types_produit (types_produit_code, types_produit_nom, types_produit_desc, types_produit_lien_desc) VALUES ('$tp_code', '$tp_nom', '$tp_desc', '$tp_lien')";
    		$result = effectue_requete($query_add_tp); 
    		@mysql_free_result($result);
    		unset($query_add_tp);
     
    		printf("<br> Votre ordre d'ajout a été enregistré.");
    		printf("<br><br> <u> Voici la liste de vos 10 derniers ajouts de types de produits</u>");
    		//$this->tp_list($id_session,array(0,10));
    		break;
    // ---------------------------------------------
    // 3EME CAS : IL Y A UNE ERREUR
    // ---------------------------------------------
    	default : break;
    }
     
    // Libération des ressources
    unset($statut);
    unset($tp_code);
    unset($tp_nom);
    unset($tp_desc);
    unset($tp_lien);
    A noter 2 points :
    - l'action du formulaire est do_m.php qui est la même page en fait
    - que mon ajout en bdd mysql se fait via l'appel de fonction effectue_requete($query) qui est une fonction tout simple qui se connecte, fait un mysql_query et se déconnecte.

    Est-ce que quelqu'un a une idée ? Ca serait génial !!

    Merci

    Eric

  2. #2
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Salut,

    je vois pas trop pourquoi, mais déjà tout ton code est faite sur la méthode POST, es tu certain d'avoir bien écrit la version avec la méthode GET ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Points : 2
    Points
    2
    Par défaut euh oui
    Hello,

    ben oui, a priori j'ai bien fait avec la méthode get, vu que c'est juste un changement dans la balise <form method=".."> et à recuperer les _Get plutot que les _Post
    D'aillerus cela marche normalement à part le petit que ça me fait le insert 2 fois, comme si je lançais 2 fois ma fonction effectue_requete().

    Mais j'ai vérifier 100 fois cela n'a pas l'air d'être le cas

Discussions similaires

  1. [ibatis] "No suitable driver" avec ibatis mais pas avec jdbc ?!
    Par vingtcent dans le forum Persistance des données
    Réponses: 6
    Dernier message: 13/12/2006, 17h00
  2. Sa marche avec Firefox mais pas avec IE ?
    Par boolat dans le forum Flash
    Réponses: 1
    Dernier message: 30/10/2006, 14h02
  3. Réponses: 13
    Dernier message: 06/11/2005, 10h45
  4. Fonction JS qui fonctionne avec Mozilla mais pas avec IE.
    Par etiennegaloup dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/10/2005, 13h58
  5. Erreur avec IE mais pas avec Netscape
    Par Oluha dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/02/2005, 15h15

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