Undefined variable

Résolu
mirakanto -  
 mirakanto -
Bonjour,

J'ai un variable qui est déjà définie mais il renvoie toujours un erreur Notice: undefined variable id in /var/www/....
Voici mon code:
if(isset($_GET["id_membre"]))
$id = $_GET['id_membre'];

$query = mysql_query("SELECT * FROM membres WHERE id_membre='$id'") OR die(mysql_error());

Merci d'avance pour votre soutien!

Cordialement!
mirakanto

3 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    Salut
    if(isset($_GET["id_membre"]))
    $id = $_GET['id_membre'];

    $query = mysql_query("SELECT * FROM membres WHERE id_membre='$id'") OR die(mysql_error());


    est ce un oubli ou as tu enlevé les {}

    prend l'habitude de les mettre systématiquement même si une seule instruction pour un test conditionnel si tu dois en rajouter une autre tu vas oublier:

    if(isset($_GET["id_membre"])){
       $id = $_GET['id_membre'];
    
       $query = mysql_query("SELECT * FROM membres WHERE    id_membre='$id'") OR die(mysql_error()); 
    
    }


    tel que tu avait fait seule l'instruction $id = $_GET['id_membre']; était liée au test conditionnel if(isset...

    donc l'instruction $query=... qui contenait la variable $id sortait une erreur
    1
    1. mirakanto
       
      Merci beaucoup Alain!il est résolu mais un autre problème apparaît! Notice: Undefined variable: query in /var/www/Pagemembres/ajour.php on line 17 Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /var/www/Pagemembres/ajour.php on line 17 Mettez à jour votre profil!
      0
    2. mirakanto
       
      Comment faire pour l'ajouter au résolu?Merci beacoup!ça m' a beacoup aider!
      0
  2. Alain_42 Messages postés 5413 Statut Membre 904
     
    pour pouvoir mettre en résolu tu dois il me semble être membre de Commentcamarche c'est a dire que tu dois t'inscrire sur le site, c'est gratuit et sans engagement.
    1
  3. mpmp93 Messages postés 2931 Date d'inscription   Statut Membre Dernière intervention   1 343
     
    Bonjour,

    ATTENTION FAILLE SECURITE

    tel que vous avez écrit votre code, c'est le meilleur moyen pour avoir une injection de code SLQ. Correction sécurisée:

    if(isset($_GET["id_membre"])) {
    $id = (int) $_GET['id_membre'];
    }

    car je suppose que l'ID du membre est un nombre entier (clé auto-incrémentale)...

    J'ai simplement rajouté (int) qui force en entier numérique le contenu de $_GET['id_membre']

    Si on entre du code SQL, la valeur sera nulle, il n'y aura aucun risque d'exécuter ce code injecté.

    A+
    1
    1. mirakanto
       
      Merci beaucoup mpmp93!ça m'a beaucoup aider! A +
      0