Undefined variable
Résolu
mirakanto
-
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
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
-
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 -
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.
-
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+