Undefined index
VitalyLG
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai eu un problème suivant sous MAMP:
code:
<?php
try
{
$bdd = new PDO('mysql:host=localhost;port=8889;dbname=test;charset=utf8', 'root', 'root', array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
}
catch (Exception $e)
{
die('Erreur: ' . $e->getMessage());
}
$req = $bdd->prepare('SELECT nom FROM jeux_video WHERE possesseur = ?');
$req->execute(array($_GET['possesseur']));
$req->closeCursor();
?>
Message que je reçois: Notice: Undefined index: possesseur in D:\MAMP\htdocs\prepare.php on line 12
C'est un cours pour les débutants, j'essaye de suivre les codes donnés pour exemple. Le code ci-dessus est copié à la lettre de la leçon. Hélas, ça ne fonctionne pas.
Même message ressort pour $req = $bdd->prepare('SELECT nom FROM jeux_video WHERE possesseur = :possesseur');
J'ai eu un problème suivant sous MAMP:
code:
<?php
try
{
$bdd = new PDO('mysql:host=localhost;port=8889;dbname=test;charset=utf8', 'root', 'root', array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
}
catch (Exception $e)
{
die('Erreur: ' . $e->getMessage());
}
$req = $bdd->prepare('SELECT nom FROM jeux_video WHERE possesseur = ?');
$req->execute(array($_GET['possesseur']));
$req->closeCursor();
?>
Message que je reçois: Notice: Undefined index: possesseur in D:\MAMP\htdocs\prepare.php on line 12
C'est un cours pour les débutants, j'essaye de suivre les codes donnés pour exemple. Le code ci-dessus est copié à la lettre de la leçon. Hélas, ça ne fonctionne pas.
Même message ressort pour $req = $bdd->prepare('SELECT nom FROM jeux_video WHERE possesseur = :possesseur');
A voir également:
- Fourtoutici.pro index
- Index téléphonique - Guide
- Telecharger index - Télécharger - Gestion de fichiers
- Index rapport de stage - Guide
- No index col - Forum Excel
- RECHERCHEV Récupérer "no_index_col" - Forum Excel
3 réponses
Bonjour
Le souci vient de la variable
$_GET['possesseur']
Cela signifie que tu ne passes pas cette variable via URL de la page...
Le souci vient de la variable
$_GET['possesseur']
Cela signifie que tu ne passes pas cette variable via URL de la page...
Bonjour Jordane,
Merci beaucoup pour la réponse.
La même variable a fonctionné avec query
<?php
$bdd = new PDO('mysql:host=localhost;port=8889;dbname=test;charset=utf8', 'root', 'root', array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
$reponse = $bdd->query('SELECT * FROM jeux_video');
while ($data = $reponse->fetch())
{
echo '<p>' . $data['console']. ' - ' . $data['nom'] . ' - ' . $data['possesseur'] . '</p>';
}
?>
Je crois, je dois lire un peu plus sur le sujet )))
Merci beaucoup pour la réponse.
La même variable a fonctionné avec query
<?php
$bdd = new PDO('mysql:host=localhost;port=8889;dbname=test;charset=utf8', 'root', 'root', array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
$reponse = $bdd->query('SELECT * FROM jeux_video');
while ($data = $reponse->fetch())
{
echo '<p>' . $data['console']. ' - ' . $data['nom'] . ' - ' . $data['possesseur'] . '</p>';
}
?>
Je crois, je dois lire un peu plus sur le sujet )))
Bonjour Jordane,
j'ai trouvé une réponse apparemment:
il a fallu ajouter@ à $_GET
ça a marché @$_GET
j'ai trouvé une réponse apparemment:
il a fallu ajouter@ à $_GET
ça a marché @$_GET
L'utilisation du arobase sert à "masquer" les erreurs ....
Pour correctement gérer ce genre de souci ... il faut récupérer "proprement" les variables AVANT de les utiliser.
Pour ça, tu peux utiliser les fonctions prévues à cet effet comme la fonction filter_input ou sinon, à minima l'écriture ternaire.
Par exemple, dans ton cas, j'aurais fait :
Au passage, je t'invite à lire et à appliquer les conseils donnés ici https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
et là https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
ainsi qu'une explication sur l'utilisation des balises de code pour poster ton code correctement sur ce forum :https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Pour correctement gérer ce genre de souci ... il faut récupérer "proprement" les variables AVANT de les utiliser.
Pour ça, tu peux utiliser les fonctions prévues à cet effet comme la fonction filter_input ou sinon, à minima l'écriture ternaire.
Par exemple, dans ton cas, j'aurais fait :
$poss = !empty($_GET['possesseur']) ? trim($_GET['possesseur']) : NULL; $sql = 'SELECT nom FROM jeux_video WHERE possesseur = ?'; $datas = array($poss); try{ $req = $bdd->prepare($sql); $req->execute($datas); }catch(Exception $e){ //en cas d'erreur dans la requête SQL echo "Erreur " . $e->getMessage(); }
Au passage, je t'invite à lire et à appliquer les conseils donnés ici https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
et là https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
ainsi qu'une explication sur l'utilisation des balises de code pour poster ton code correctement sur ce forum :https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code