problème avec $_POST['recherche_id']

Résolu
cs_Batman60 Messages postés 71 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 21 octobre 2007 - 5 mai 2007 à 12:26
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 - 5 mai 2007 à 13:03
Bonjour je suis débutant en PHP j'ai un problème avec $_POST[]

quand j'actionne sans avoir rempli le $_POST['recherche_id'] a pour valeur 1 ,pourquoi?? .    $_POST['recherche_id'] devrait être vide  
voici mon code   merci d'avance

<?php
if (isset($_POST['recherche_id'])) // Si les variables existent
{
    if ($_POST['recherche_id'] != NULL) // Si on a quelque chose à enregistrer
    {
        // D'abord, on se connecte à MySQL
        mysql_connect("localhost", "root", "");
        mysql_select_db("parcautos");     
$post_id= $_POST['recherche_id'];       
$reponse = mysql_query("SELECT * FROM vehicules WHERE id='$post_id' "); // Requête SQL
while ($donnees= mysql_fetch_array($reponse) )
{        
     echo $recherche_id= $donnees['id']; // echo pour voir ce qui se passe         
     echo $recherche_marquetype= $donnees['marquetype']; // echo pour voir ce qui se passe
     echo $recherche_immatriculation= $donnees['immatriculation']; // echo pour voir ce qui se passe    
}      
        mysql_close(); // Déconnexion de MySQL }               
    }   
}
else

   
   /*header('location: saisie_modification_vehicule.php');*/
}      
      ?>
     
        <?php echo isset($_POST['recherche_id']); // test pour voir la variable ?>
       
        <?php echo isset($post_id); // test pour voir la variable ?>
     

      <form method="post" action=""> ID:
        MARQUE TYPE:
        " size="20" maxlength="20" /> IMMATRICULATION :
        " size="10" maxlength="20" />
       

       
<?php
if(isset($recherche_id) AND isset($recherche_marquetype))
{
        ?>
       
<?php
}
        ?>
        </label>
       

      </form>

1 réponse

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
5 mai 2007 à 13:03
Salut,

if (isset($_POST['recherche_id'])) // Si les variables existent

Si le formulaire est envoyé, le champ recherche_id est forcément défini. Même s'il est vide. Donc ce test réussira toujours. Le seul cas où il peut échouer, c'est si un visiteur écrit une requête POST à la main. Il y en a peu, quand même...

Tes deux lignes :
if (isset($_POST['recherche_id'])) // Si les variables existent
{
if ($_POST['recherche_id'] != NULL) // Si on a quelque chose à enregistrer

Peuvent être réduites à une seule :
if(isset($_POST['recherche_id']) && !is_null($_POST['recherche_id']))

Au lieu de is_null, tu peux utiliser empty, sauf si recherche_id peut être égal à zéro.
3
Rejoignez-nous