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 :

$_POST est vide à l'arrivée [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut $_POST est vide à l'arrivée
    Bonjour,

    ça fait 3 jours que je traîne ce problème, j'ai écumé les forums divers (celui-ci m'a paru le meilleurs!) sans succés ... alors un peu d'aide me fera moin passer pour un c.. face à mon boss

    Voici le problème, j'ai un formulaire remplis au chargement par une table mysql, les variables sont correctement extraites et affichées, quand je lance l'update (bouton submit, methode post) le submit se fait (rafraichissement de la page de traitement demande à renvoyer postdatas) mais $_POST est desesperement vide ! (pareil si $_GET : rien dans l'url ...)

    Voici le code du formulaire :
    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
    <div id="table-td">
    <form action="securite/servclt-modifcompte-off.php" method="post" enctype="application/x-www-form-urlencoded" id="modifcompte">
    <fieldset>
    <legend>Vos informations personnelles :</legend>
      <table>
    	<tr><td>Identifiant : </td><td><input type="hidden" id="idclt" value="<?php echo $ligne[0]; ?>" /><?php echo $ligne[0]; ?></td></tr>
        <tr><td>Raison sociale* : </td><td><input type="text" id="raison" size="40" maxlength="40" value="<?php echo $ligne[1]; ?>" /></td></tr>
    	<tr><td>Adresse* : </td><td><input id="adr" size="40" maxlength="60" value="<?php echo $ligne[2]; ?>" /></td></tr>
    	<tr><td>Code Postal* : </td><td><input type="text" id="cp" size="40" maxlength="5" value="<?php echo $ligne[3]; ?>"/></td></tr>
        <tr><td>Ville* : </td><td><input type="text" id="ville" size="40" maxlength="60" value="<?php echo $ligne[4]; ?>"/></td></tr>
    	<tr><td>Zone Géographique : </td><td><input type="text" id="geo" size="40" maxlength="10" value="<?php echo $ligne[5]; ?>"/></td></tr>
        <tr><td>Tel* : </td><td><input type="text" id="tel" size="40" maxlength="20" value="<?php echo $ligne[6]; ?>"/></td></tr>
      	<tr><td>Fax : </td><td><input type="text" id="fac" size="40" maxlength="20" value="<?php echo $ligne[7]; ?>"/></td></tr>
        <tr><td>Mail* : </td><td><input type="text" id="mail" size="40" maxlength="60" value="<?php echo $ligne[8]; ?>"/></td></tr>
    	<tr><td>Site Web : </td><td><input type="text" id="web" size="40" maxlength="100" value="<?php echo $ligne[9]; ?>"/></td></tr>
        <tr><td>Nom du contact : </td><td><input type="text" id="nomctc" size="40" maxlength="40" value="<?php echo $ligne[10]; ?>"/></td></tr>
      	<tr><td>Tel du contact : </td><td><input type="text" id="telctc" size="40" maxlength="20" value="<?php echo $ligne[11]; ?>"/></td></tr>
        <tr><td>Fax du contact : </td><td><input type="text" id="faxctc" size="40" maxlength="20" value="<?php echo $ligne[12]; ?>"/></td></tr>
        <tr><td>Mail du contact : </td><td><input type="text" id="mailctc" size="40" maxlength="60" value="<?php echo $ligne[13]; ?>"/></td></tr>
      	<tr><td>Numéro SIRET* : </td><td><input type="text" id="siret" size="40" maxlength="14" value="<?php echo $ligne[14]; ?>"/></td></tr>
        <tr><td>Numéro APE* : </td><td><input type="text" id="ape" size="40" maxlength="4" value="<?php echo $ligne[15]; ?>"/></td></tr>
    	<tr><td>SFAC* : </td><td><input type="text" id="sfac" size="40" maxlength="10" value="<?php echo $ligne[16]; ?>"/></td></tr>
    	<tr><td>Abonné aux de Newsletter * : </td><td><select id="news" size="1"><option value="true" selected>oui</option><option value="false">non</option></select></td></tr>
    </fieldset>
        <tr>
          <td colspan='2'><h5><span id="table_tdbas"><input id='submmoficlt' type="submit" value=" Valider " onclick="document.form.modifcompte.submit()"/> ou <input type="button" value=" Annuler " onclick="window.location='index.php?page=espacemembre'" /> ( * champs obligatoires)</span></h5></td>
        </tr>
      </table>
     
    </form>
    </div>
    <!-- fin div table_td -->
    et la page php de traitement (qui d'ailleurs ne me redirige pas, sans avoir d'erreurs dans les logs php, mysql ou même la console javascript ... un mystère ) :

    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
     
    <?php
    session_start();
    include "../securite/sessionstarter.php";
    require('connex.inc.php');
    $idcltsess=$_SESSION['idclt'];
    echo "<script language='JavaScript' type='text/javascript'>alert('idclt = $idcltsess')</script>";/*------------------ a virer ---------------------------*/
    $idclt=$_POST['idclt'];
    echo "<script language='JavaScript' type='text/javascript'>alert('idclt du post = $idclt')</script>";/*------------------ a virer ---------------------------*/
    $nbpost=count($_POST);
    $raison=$_POST['raison'];
    $idclt=$_POST['idclt'];
    $adr=$_POST['adr'];
    $cp=$_POST['cp'];
    $ville=$_POST['ville'];
    $tel=$_POST['tel'];
    $mail=$_POST['mail'];
    $siret=$_POST['siret'];
    $ape=$_POST['ape'];
    $sfac=$_POST['sfac'];
    echo "$nbpost-$raison-$idclt-$adr-$cp-$ville-$tel-$mail-$siret-$ape-$sfac";/*--------------------------------a virer --------------------*/
    if(!empty($_POST['raison']) && !empty($_POST['idclt']) && !empty($_POST['adr'])&& !empty($_POST['cp'])&& !empty($_POST['ville'])&& !empty($_POST['tel'])&& !empty($_POST['mail'])&& !empty($_POST['siret'])&& !empty($_POST['ape'])&& !empty($_POST['sfac']))
    	{
    	  echo "<script language='JavaScript' type='text/javascript'>alert('dans if !empty')</script>";/*------------------ a virer ---------------------------*/
    	  $raison_soc_clt=mysql_escape_string($_POST['raison']);
    	  $adr_clt=mysql_escape_string($_POST['adr']);
    	  $cp_clt=mysql_escape_string($_POST['cp']);
    	  $ville_clt=mysql_escape_string($_POST['ville']);
    		$zone_geo_clt=mysql_escape_string($_POST['geo']);
    	  $tel_clt=mysql_escape_string($_POST['tel']);
    	  $fax_clt=mysql_escape_string($_POST['fax']);
    	  $mail_clt=mysql_escape_string($_POST['mail']);
    		$site_clt=mysql_escape_string($_POST['web']);
    	  $nom_ctc_clt=mysql_escape_string($_POST['nomctc']);
    	  $tel_ctc_clt=mysql_escape_string($_POST['telctc']);
    	  $fax_ctc_clt=mysql_escape_string($_POST['faxctc']);
    	  $mail_ctc_clt=mysql_escape_string($_POST['mailctc']);
    	  $siret_clt=mysql_escape_string($_POST['siret']);
    	  $ape_clt=mysql_escape_string($_POST['ape']);
    		$sfac_clt=mysql_escape_string($_POST['sfac']);
    		$news_ok_clt=mysql_escape_string($_POST['news']);
    	  //Requète SQL
    	  echo "<script language='JavaScript' type='text/javascript'>alert('variable ok on construit requete')</script>";/*------------------ a virer ---------------------------*/
    	  $requete="UPDATE client SET raison_soc_clt='".$raison_soc_clt."', adr_clt='".$adr_clt."', cp_clt='".$cp_clt."', ville_clt='".$ville_clt."', zone_geo_clt='".$zone_geo_clt."', tel_clt='".$tel_clt."', fax_clt='".$fax_clt."', mail_clt='".$mail_clt."', site_clt='".$site_clt."', nom_ctc_clt='".$nom_ctc_clt."', tel_ctc_clt='".$tel_ctc_clt."', fax_ctc_clt='".$fax_ctc_clt."', mail_ctc_clt='".$mail_ctc_clt."', siret_clt='".$siret_clt."', ape_clt='".$ape_clt."', sfac_clt='".$sfac_clt."', news_ok_clt='".$news_ok_clt."' WHERE id_clt='".$idclt."'";
    	  echo "<script language='JavaScript' type='text/javascript'>alert('requete ok')</script>";/*------------------ a virer ---------------------------*/
    	  $result=mysql_query($requete,$idcom);
    	  echo "<script language='JavaScript' type='text/javascript'>alert('requete : $requete et id : $idcom')</script>";/*------------------ a virer ---------------------------*/
     
    	  if(!$result)
    		  {
    		   echo "<h2>Erreur d'insertion dans la base de données \n n°",mysql_errno()," : ",mysql_error()."</h2>";
    		   echo "<script language='JavaScript' type='text/javascript'>window.location='index.php?page=servcltmofidcompte'</script>";
    		  }
    		  else
    			  {
    				 echo "<script language='JavaScript' type='text/javascript'>window.location='index.php?page=servcltmofidcompte'</script>";
    			  }
    	}
    else {"<script language='JavaScript' type='text/javascript'>window.location='index.php?page=servcltmofidcompte'</script>";}
    mysql_close();
    ?>
    Désolé pour la longueur mais je ne vois vraiment pas pourquoi le post arrive vide ... (il reste des echo et alert de debuggage).

    Je précise que je n'ai qu'un petit niveau ...

    Merci d'avance, je saigne du nez à force de mettre des coups de têtes dans l'ecran

  2. #2
    Invité
    Invité(e)
    Par défaut
    salut

    Citation Envoyé par lo_runisland
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input id='submmoficlt' type="submit" value=" Valider " onclick="document.form.modifcompte.submit()"/>
    pourquoi fais-tu une double validation de ton formulaire ? je pense que la validation JavaScript envoie les données, et qu'il n'y a donc plus rien à envoyer quand le vrai submit se fait... car le bouton submit à lui seul génère l'événement de submit, pas besoin d'en remettre une couche en JS

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut Effectivement, c'est un reste de mes tests ...
    Citation Envoyé par torvalds17
    salut


    pourquoi fais-tu une double validation de ton formulaire ? [...] pas besoin d'en remettre une couche en JS
    J'ai lu les references (pas par coeur, c'est mon premier job en création de sites), et sans le submit javascript ça donne la même chose ... le count($_POST) me donne 0 ...

    PS: Woaww, super rapide la réponse, merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    là je ne vois pas trop... quelle est ta version de PHP ?

  5. #5
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Question bête mais c'est quoi la différence entre "id" et "name" pour les input
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par JWhite
    Question bête mais c'est quoi la différence entre "id" et "name" pour les input
    tiens t'as raison toi !! j'avais pas vu !!

    -> l'id sert à accéder à un <input /> de manière unique en JavaScript
    -> le name sert à passer les valeurs des <input /> côté serveur

    lo_runisland tu sais ce qu'il te reste à faire

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par JWhite
    c'est quoi la différence entre "id" et "name" pour les input
    Comme je cherche la validation xhtml il interdit la balise name (dépréciée) ... et j'ai d'autres formulaires qui marchent avec le id à la place du name .

    Pas d'idées pour mon mystère ?
    (j'avais déjà eu le problème que j'ai contourné par les variables session mais là c'est pas possible)

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Vrai ? Ben mince, j'étais pourtant sùr que ça venait pas de là ....

    Je vais retester avec name ...

    Merci en tout cas pour la rapidité , je reviens pour mettre résolu si c'est bon

  9. #9
    Invité
    Invité(e)
    Par défaut
    je ne suis pas 100% certain de ce que j'avance, mais ça me paraît plus logique...

    quant à la validation XHTML, ne t'inquiète pas : l'attribut name est déprécié pour presque tout, sauf pour l'élément <input /> car justement il est vraiment utile dans ce cas

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Pareil avec name à la place de id ...

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 85
    Points : 77
    Points
    77
    Par défaut
    Bonjour lo_runisland,

    Je connais pas bien l'utilisation de "id=" dans les formulaires mais il me semble que pour récupérer un POST c'est son nom qu'il faut indiquer...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input name="nom"...>
    $nom = $_POST['nom']
    Si je me trompe merci de me le dire (j'apprend beaucoup comme ca finalement.. )

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Bonjour Attilius,

    j'ai aussi remplacé le id de la balise <form> par un name à l'instant mais j'ai les même symptômes ...

    Est-ce que ça pourrait venir de la configuration de php (je suis avec WAMP5 Version 1.6.1, et le php.ini est tout par défaut ... ?

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 85
    Points : 77
    Points
    77
    Par défaut
    et un message inutile...un

    J'arrive un peu tard...ca m'apprendra a mettre 10 min à rédiger un message...

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Attilius
    et un message inutile...un

    J'arrive un peu tard...ca m'apprendra a mettre 10 min à rédiger un message...
    C'est surtout que ce forum est super réactif !

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut
    Bon je rentre à case (fin d'après-midi ici, pourrais pas continuer : ma connexion wanadoo à prix d'or est out), reviendrais sûrement vous tanner demain si j'ai pas trouvé ...

    En tout cas merci pour les débuts de réponses

  16. #16
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Là je vois plus
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Points : 5
    Points
    5
    Par défaut C'est moi qui plane !
    Bonjour tout le monde,

    j'ai retesté le tout à la maison et c'est moi qui ai plané !!!

    En changeant le id en name ça fonctionne, bien evidemment, (j'avais testé sur autre fichier doublon donc ma modif ne rentrait pas dans le site ... ).

    En tout cas merci à tous pour la vitesse et la qualité des réponses ...

  18. #18
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par lo_runisland
    Bonjour tout le monde,

    j'ai retesté le tout à la maison et c'est moi qui ai plané !!!

    En changeant le id en name ça fonctionne, bien evidemment, (j'avais testé sur autre fichier doublon donc ma modif ne rentrait pas dans le site ... ).

    En tout cas merci à tous pour la vitesse et la qualité des réponses ...

    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

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

Discussions similaires

  1. $_POST est vide
    Par mapmip dans le forum Langage
    Réponses: 5
    Dernier message: 06/01/2015, 13h06
  2. $_POST est vide :(
    Par zzaboulou dans le forum Langage
    Réponses: 11
    Dernier message: 04/04/2007, 18h17
  3. [JDBC]tester si une table est vide
    Par zozolh2 dans le forum JDBC
    Réponses: 5
    Dernier message: 28/05/2004, 09h17
  4. Ne pas afficher un champs qui est vide dans ma BD
    Par yoda_style dans le forum ASP
    Réponses: 3
    Dernier message: 27/04/2004, 11h40
  5. [CR] Avoir seulement une page blanche qd la base est vide???
    Par littleChick dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 13/08/2002, 18h26

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