Probleme $_POST formulaire

thomas59 Messages postés 14 Statut Membre -  
 Utilisateur anonyme -
Bonjour,

J'envoie plusieurs informations via formulaire avec méthode POST,
avant de traiter les informations je fais un i
if( isset($_POST) && !empty($_POST) )
{//instruction}
Le problème est que je rentre jamais dans le if,, j'ai fais des test, et ils me disent que j'ai une varaible vide, comment savoir laquelle?

14 réponses

biboo
 
Essaie déjà de détailler les champs que tu aimerais tester peut-être. :) (genre $_POST['value'])
0
Utilisateur anonyme
 
Salut !

Dans ton formulaire tu dois avoir des input du genre

<input type='text' name="nom_du_champ1"/>

Ensuite tu fais ton code PHP.

Mais tu écris $_POST, mais $_POST de quoi ?

Tu dois préciser !!

if(isset($_POST['nom_du_champ1']) && $_POST['nom_du_champ1']!="") //ou empty
{
//traitement
}
0
thomas59 Messages postés 14 Statut Membre
 
voici mon formulaire

<form method="post" action="">

<ul class="form">
<li>
<label for="store_name"><?php echo $lang['stores']['label_name'] ?> *</label>
<input type="text" id="store_name" name="store_name" class="text" value="<?php echo $_POST['store_name'] ?>" />
</li>
<li>
<label for="id_ens"><?php echo $lang['stores']['label_ens'] ?> *</label>
<input type="text" id="id_ens" name="id_ens" class="text" value="<?php echo $_POST['id_ens'] ?>" />
</li>
<li>
<label for="cli_id"><?php echo $lang['stores']['cli_id'] ?> *</label>
<input type="text" id="cli_id" name="cli_id" class="text" value="<?php echo $_POST['cli_id'] ?>" />
</li>
<li>
<label for="distriboffice"><?php echo $lang['stores']['distriboffice'] ?> *</label>
<input type="text" id="distriboffice" name="distriboffice" class="text" value="<?php echo $_POST['distriboffice'] ?>" />
</li>
<li>
<label for="store_address"><?php echo $lang['stores']['label_address'] ?> *</label>
<textarea id="store_address" name="store_address" class="text"><?php echo $_POST['store_address'] ?></textarea>
</li>
<li>
<label for="store_addressb"><?php echo $lang['stores']['label_address2'] ?> *</label>
<textarea id="store_addressb" name="store_addressb" class="text"><?php echo $_POST['store_addressb'] ?></textarea>
</li>
<li>
<label for="store_postal_code"><?php echo $lang['stores']['label_postal_code'] ?> *</label>
<input type="text" id="store_postal_code" name="store_postal_code" class="text" value="<?php echo $_POST['store_postal_code'] ?>" />
</li>

<li>
<label for="store_city"><?php echo $lang['stores']['label_city'] ?> *</label>
<input type="text" id="store_city" name="store_city" class="text" value="<?php echo $_POST['store_city'] ?>" />
</li>
<li>
<label for="store_country"><?php echo $lang['stores']['label_country'] ?> *</label>
<select id="store_country" name="store_country" class="text">


<?php foreach($countriesList as $currentCountry): ?>
<option value="<?php echo $currentCountry->id ?>"<?php if( isset($_POST['store_country']) && $_POST['store_country'] == $currentCountry->id ): ?> selected="selected"<?php endif; ?>><?php echo utf8_encode($currentCountry->label) ?></option>
<?php endforeach; ?>
</select>

</li>

<li><input type="submit" class="btn2" value="<?php echo $lang['global']['bt_submit']; ?>" /></li>
</ul>

</form>
0
biboo
 
$_POST est un tableau de données, théoriquement son test est bon puisqu'il test l'existence du tableau (bref, si des données ont été transmises d'une page à l'autre).
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
Oui
Ca doit venir de ta page de formulaire
on peut la voir pour voir s'il ny a pas une erreur dedans ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
biboo
 
Attends, pourquoi t'as rien dans ton attribut "action"?
Si tu veux rediriger vers la même page, mets cette même page.
0
thomas59 Messages postés 14 Statut Membre
 
sa fonctionne si tu ne met rien sa renvoie vers cette page.
Dans les autres pages cela fonctionne comme cela, je vois pas pourquoi avec celle ci
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
Ca fonctionne peut être sous ton navigateur, mais ca ne le fera pas sur tous !
essayes sous Safari, tu verras ca prendra l'adresse du dossier et pas de ta page
0
thomas59 Messages postés 14 Statut Membre
 
je suis sous safari. mon entreprise fonctionne comme cela depuis sa création
0
Utilisateur anonyme
 
c'est une règle en HTML

Va sur http://validator.w3.org/check et essaie !
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
normalement ca marche si la page se nomme index.php, mais sinon ca ne doit pas marcher :S
enfin d'après mon expérience ^^
0
thomas59 Messages postés 14 Statut Membre
 
sinon tu ne vois pas a quoi cela pourrait etre du?
0
Utilisateur anonyme
 
<input type="text" id="id_ens" name="id_ens" class="text" value="<?php echo $_POST['id_ens'] ?>" />

Post sert à récupérer le contenu d'un champ. Value de ton champs vaut rien car tu essaies de récupérer avant même d'envoyer !

C'est contradictoire !
0
biboo
 
Il essaie de récupérer une valeur qu'il essaie de récupérer qu'il essaie etc...
0
thomas59 Messages postés 14 Statut Membre
 
oui mais je traite dans mon code avant !
selon id de mon produit, je vais cherché les info en base et les affiche ensuite
0
Alain_42 Messages postés 5413 Statut Membre 894
 
bonjour,

pour repartir du tout début du topic:
if( isset($_POST) && !empty($_POST) )
{//instruction}
Le problème est que je rentre jamais dans le if,, j'ai fais des test, et ils me disent que j'ai une varaible vide, comment savoir laquelle?


$_POST est un array,ton test n'est pas correct, mets un name au bouton submit et teste le

...........
</li>

<li><input type="submit" name="bt_submit" class="btn2" value="<?php echo $lang['global']['bt_submit']; ?>" /></li>
</ul>

</form>

partie php
<?php
if( isset($_POST['bt_submit']) && !empty($_POST['bt_submit']) ){

}


- ensuite avec action="" ça marche mais il vaut mieux mettre action="echo $_SERVER['PHP_SELF']"

ahamet0851:Post sert à récupérer le contenu d'un champ. Value de ton champs vaut rien car tu essaies de récupérer avant même d'envoyer !

C'est contradictoire !
NON !!

-quand on mets value="<?php echo $_POST['.....'] dans les <input
c'est pour réafficher la valeur saisie lorsque la page se réaffiche.

mais en php 5 ça doit génerer une erreur

il faut mettre par exemple

<input type="text" id="store_name" name="store_name" class="text" value="<?php if(isset($_POST['store_name'])) echo $_POST['store_name']; ?>" />
0
Utilisateur anonyme
 
Justement c'est ça que je disait. Le champs est vide et il essaie de le récupérer !
0