Soucis de variable get et echo

Résolu
Bonjour,

j ai une page qui se rappelle meme pour vérifier si le formulaire est bien remplis. Mais j ai soucis avec un code en php je vous mettre un condensé du code ici
Dans ma première partie je vérifie si l'id du membre poster.
<?php 
if (isset($_GET['vari'])) {
$idmem=htmlspecialchars(addslashes(trim($_GET['vari'])));
} else {
$idmem="";
}

/** Récupérer les données par $_POST **/
$idmembres=$_POST['nommembre'];
?>

ensuite vu que mon formulaire fait appel a lui même j ai ceci plus bas
<form method="post" action="editmembre.php?vari=<?php echo"$idmembres"; ?>">

et systématiquement ça n'entre pas la variable je ne sais pas pourquoi...
hors si je fais un echo avant de ma variable elle retourne bien une valeur mais pas dans la balise form....

3 réponses

  1. Modérateur
    Bonjour,

    remplace ton code par :
    /** Récupérer les données par $_GET si existe .. sinon $_POST **/
     $idmembres= !empty($_GET['vari']) ? htmlspecialchars(addslashes(trim($_GET['vari']))) : (!empty($_POST['nommembre']) ? $_POST['nommembre'] : 0 );
    


    NB: J'ai utilisé l'écriture ternaire (c'est une sorte de IF/ELSE )
    $unevariable = condtion ? valeur si vraie : valeur si faux; 
    

    Cordialement, 
    Jordane                                                                 
    1. le truc c'est que ma variable est bien existante et qu'elle retourne bien une valeur

      suppose la valeur soit 6

      si je fais ça

      			<?php echo"$idmembres"; ?>
      <form method="post" action="editmembre.php?vari=<?php echo"$idmembres"; ?>">
      <?php echo"$idmembres"; ?>


      ca me retourne 6
      6
      mais si je valide mon poste la variable du vari reste null et ça je comprend pas
      1. Salut,

        Tu peux également essayer de passer ton paramètre via un input type hidden :
        <form method="post" action="editmembre.php">
            <input type="hidden" name="vari" value="<?php echo $idmembres; ?>">
            <input type="submit">
        </form>
        
    2. Je vai l'écrire autrement lol je ne me fait pas bien comprendre je comprendre je crois
      Je récupère bien ma variable quant elle existe mais je n'arrive pas à la passer par l'url
      Mon url retourne ça : editmembre.php?vari=
      supposons que mon id soit 32 (donc ma variable $idmembres) ça devrait me retourner
      editmembre.php?vari=32 vu que je fait
      <form method="post" action="editmembre.php?vari=<?php echo"$idmembres"; ?>">
      1. Modérateur
        Sachant que dans ton code précédent .. tu initialisais la variable $idmembres depuis GET ..mais tu l'écrasais ensuite par la valeur POST ...
        Donc si POST etait vide ... ben ton URL ne pouvait pas récupérer la variable.....
        D'où le code que je t'ai proposé ...

        mais bon ... mélanger du POST avec du GET.. c'est moyen.
        Le mieux étant de faire comme le propose Pitet ... en la stockant dans un input hidden.
      2. Merci pour ta réponse Jordane je n'avait pas repéré le fait que je l'écrasais...