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. :pleure:
Voici le code ci-dessous :
Code:
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