Les champs cachés, passation de données.

Eléphant du PHP | 119 Messages

17 mai 2006, 15:08

rebonjour a tous.

j'ai un probleme avec un champ caché, ca fait depuis 13h30 que je suis dessus, je comprend plus rien.

voila mon code de la page inscription2

Code : Tout sélectionner

<form method="post" action="index.php?page=inscription2"> <p>Raison sociale:</p> <input type="text" name="raison" size="50"/> <input type="hidden" name="entid" value="<?= $id ?>" /> <br /><br /> <input type="submit" name="submit" value="valider"/> </form> </div> </div> <?php /**************************************************************************** VERIFICATION DE L'EXISTENCE OU NON DE L'ENTREPRISE DANS LA BASE DE DONNEES ****************************************************************************/ // ConnectDB contient les informations de connexion. require ("connectDB.php"); $id = $_POST['entid']; $Ers = $_POST['raison']; // On verifie que l'entreprise n'a pas déjà été enregistrée. $sql = "SELECT ent_rs FROM entreprise WHERE ent_rs='$Ers'"; $resultat = mysql_query($sql); $num = mysql_num_rows($resultat); if ($num > 0) { // Si elle a deja ete enregistrée on cherche l'id de l'entreprise. $sql_id = "SELECT ent_id FROM entreprise WHERE ent_rs='$Ers'"; $result_id = mysql_query($sql_id); $row = mysql_fetch_array($result_id); $Eid = $row["ent_id"]; echo '<meta http-equiv="Refresh" content="0;URL=index.php?page=inscription3">'; } ?>
le code de la page inscription3

Code : Tout sélectionner

<?php $Id = $_POST['entid']; echo $Id; ?>
en fait le but de ce script est de verifier si la raison sociale existe deja dans l'entreprise.
Si elle existe je cherche l'id et l'enregistre dans la base de données a partie de la page inscription3

le probleme vient du fait que j'arrive pas du tout a faire passer mon id d'un formulaire à un autre.

Si quelqu'un avait une petite solution pour moi

Merci d'avance Cordialement :oops: :oops:

NB: Si je fais un echo dans la page inscription2 de $Eid il m'affiche bien la valeur donc ce n'est pas un probleme de Sql

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mai 2006, 15:12

Utilises les sessions c'est plus simple dans ton cas. Lors de ton passage à inscription3, tu tentes de récupérer une variable avec $_POST mais qui n'existe pas puisque la redirection se fait par une meta sans variables.
Modifié en dernier par charabia le 17 mai 2006, 15:18, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 mai 2006, 15:13

Quand tu fais ceci :
echo '<meta http-equiv="Refresh" content="0;URL=index.php?page=inscription3">';
Tu lui dit d'aller sur ouvrir la page index.php avec le paramètre page égal à "inscription3". Si tu ne lui dis pas explicitement d'envoyer d'autres paramètres également (donc typiquement ceux que tu as pu recevoir de ton formulaire) il ne le fera pas... pour lui ces paramètres devaient être envoyés à "index.php?page=inscription2", il l'a fait, leur vie s'arrête donc ici, à moins que tu ne les conserves en session, en base ou que tu ne les fasses suivre à la page suivante :
echo '<meta http-equiv="Refresh" content="0;URL=index.php?page=inscription3&entid='.$Eid.'">';
Attention, il arrivera en GET :)

Mammouth du PHP | 1353 Messages

17 mai 2006, 15:14

Cela ne pourra pas fonctionner comme cela : tu fais un refresh et tu veux récupérer une variable par POST. Ce n'est pas possible, soit c'est la validation d un formulaire qui appelle la nouvelle page donc c'estun POST soit quand tu rappelles ta page tu mets
echo '<meta http-equiv="Refresh" content="0;URL=index.php?page=inscription3&entid='.$Eid.'">';
A ce moment la dans inscription3 tu pourras faire
<?php 
   $Id = $_GET['entid']; 
   echo $Id; 
   ?> 
Cela dit ton code n'est pas très bien structuré fais attention aux erreurs possibles, il faut éviter de mélanger le html et le php comme ton echo '<meta....' et de plus il vaut mieux tester l existence des variables avant de les utiliser... Fais un tour du coté des fonctions comme isset().

EDIT: Aie j ai été devancé !!! :cry:
Modifié en dernier par guilt92 le 17 mai 2006, 15:15, modifié 1 fois.

Eléphant du PHP | 119 Messages

17 mai 2006, 15:14

et charabia peut tu m'expliquer brievement comment faire avec une session, ca serait gentil :wink: :wink:

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mai 2006, 15:17

Tu peux aller voir ici pour les sessions :
http://phpdebutant.org/article69.php

Sinon Ryle et guilt92 t'ont fourni une solution si tu veux garder ta structure actuelle.

Eléphant du PHP | 119 Messages

17 mai 2006, 15:18

Merci à tous, vous etes di-donc tres reactifs sur ce forum.

C'est cool d'aider les novices comme moi :wink: :wink: :wink:

Merci beaucoup