Notice: Undefined index: id in C:\wamp64\www\profil.php on line 30
Résolu/Fermé
9Ricky2
9Ricky2
- Messages postés
- 22
- Date d'inscription
- samedi 29 août 2020
- Statut
- Membre
- Dernière intervention
- 13 septembre 2020
9Ricky2
- Messages postés
- 22
- Date d'inscription
- samedi 29 août 2020
- Statut
- Membre
- Dernière intervention
- 13 septembre 2020
A voir également:
- Php notice: undefined index
- Tv id undefined - Meilleures réponses
- Undefined index php - Meilleures réponses
- Notice: Undefined index: id in C:\wamp64\www\profil.php on line 30 ✓ - Forum - PHP
- Notice: undefined index: id in ✓ - Forum - Programmation
- PHP - Notice : Undefined index - Conseils pratiques - PHP
- Notice: Undefined index: id ✓ - Forum - PHP
- Error: Undefined index: name in C:\wamp\www\xx\ ✓ - Forum - Webmaster
5 réponses
jordane45
30 août 2020 à 13:16
- Messages postés
- 35475
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 22 mai 2022
30 août 2020 à 13:16
9Ricky2
Modifié le 30 août 2020 à 13:53
- Messages postés
- 22
- Date d'inscription
- samedi 29 août 2020
- Statut
- Membre
- Dernière intervention
- 13 septembre 2020
Modifié le 30 août 2020 à 13:53
Rebonjour Jordane merci pour ta réponse mais je n'est pas très bien compris la signification et également ou dois-je le mettre dans mon code pouvez vous m'aidez ?
jordane45
30 août 2020 à 14:24
- Messages postés
- 35475
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 22 mai 2022
30 août 2020 à 14:24
Bonjour,
Il y aurait beaucoup à dire sur ton code.
Déjà, activer l'affichage des erreurs PHP au debut du fichier
Ensuite, activer l'affichage des erreurs PDO dans la connexion à ta bdd et mettre CHAQUE requête dans un bloc try/catch
Puis l'utilisation de la fonction rowCount qui ne doit jamais être faite sur une requête de type SELECT
Reste la "récupération" propre des variables (ou au moins vérifier qu'elle existe... ) AVANT de les utiliser
Et enfin, séparer le code de connexion à ta bdd dans un autre fichier de façon à juste l'inclure dans tes pages au lieu de le réécrire sur chacune d'elle.
Bref,
Tout ça devrait donner un truc du genre
Pour rappel, voici quelques liens à lire ( et à conserver...) pour tes prochains codes...
https://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
Il y aurait beaucoup à dire sur ton code.
Déjà, activer l'affichage des erreurs PHP au debut du fichier
Ensuite, activer l'affichage des erreurs PDO dans la connexion à ta bdd et mettre CHAQUE requête dans un bloc try/catch
Puis l'utilisation de la fonction rowCount qui ne doit jamais être faite sur une requête de type SELECT
Reste la "récupération" propre des variables (ou au moins vérifier qu'elle existe... ) AVANT de les utiliser
Et enfin, séparer le code de connexion à ta bdd dans un autre fichier de façon à juste l'inclure dans tes pages au lieu de le réécrire sur chacune d'elle.
Bref,
Tout ça devrait donner un truc du genre
<?php //fichier de connexion à la bdd : cnxbdd.php try{ $bdd =new PDO('mysql:host=127.0.0.1; dbname=espace_membre; charset=utf8', 'root', ''); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } ?>
<?php //affichage des erreurs php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //démarrage des sessions session_start(); // Connexion à la bdd require_once "cnxbdd.php"; //récupération PROPRE des variables AVANT de les utiliser $id = !empty($_GET['id']) ? intval($_GET['id']) : NULL; $session_id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL; if($id>0){ $sql = 'SELECT * FROM membres WHERE id = ?'; $datas = array($id); //Execution de la requete (placée dans un bloc TRY/CATCH !! ) try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; $userinfo = $requete->fetch(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } } else{ echo " ID manquant !"; } ?> <!DOCTYPE html> <html> <head> <title> TEST PHP </title> <meta charset="utf-8"> </head> <body> <div align="center"> <?php if(!empty($userinfo)){ //récupération PROPRE des variables AVANT de les utiliser $pseudo = !empty($userinfo['pseudo']) ? $userinfo['pseudo'] : ""; $mail = !empty($userinfo['mail']) ? $userinfo['mail'] : ""; $user_id = !empty($userinfo['id']) ? $userinfo['id'] : ""; echo "<h2>Profil de $pseudo </h2> <br /><br /> Pseudo = $pseudo' <br /> Mail = $mail <br /> "; if($user_id == $session_id){ echo "<a href='#'>Editer mon profil</a>"; } }else{ echo " Utilisateur inconnu !"; } ?> </div> </body> </html>
Pour rappel, voici quelques liens à lire ( et à conserver...) pour tes prochains codes...
https://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
9Ricky2
30 août 2020 à 15:02
- Messages postés
- 22
- Date d'inscription
- samedi 29 août 2020
- Statut
- Membre
- Dernière intervention
- 13 septembre 2020
30 août 2020 à 15:02
D'accord merci je vais voir ça
je reviens vers vous dans quelque instant
je reviens vers vous dans quelque instant
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
9Ricky2
31 août 2020 à 12:18
- Messages postés
- 22
- Date d'inscription
- samedi 29 août 2020
- Statut
- Membre
- Dernière intervention
- 13 septembre 2020
31 août 2020 à 12:18
Bonjour je viens de corriger le code car hier je ne pouvais pas mais maintenant j'ai une erreur à la ligne 25 pour la connexion à la bdd ce qui donne ceci :

j'espère ne pas m'avoir trompé sur le code le voici également :
j'espère ne pas m'avoir trompé sur le code le voici également :
<?php //fichier de connexion à la bdd : cnxbdd.php try{ $bdd =new PDO('mysql:host=127.0.0.1; dbname=espace_membre; charset=utf8', 'root', ''); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } ?> <?php //affichage des erreurs php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //démarrage des sessions session_start(); // Connexion à la bdd require_once "cnxbdd.php"; //récupération PROPRE des variables AVANT de les utiliser $id = !empty($_GET['id']) ? intval($_GET['id']) : NULL; $session_id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL; if($id>0){ $sql = 'SELECT * FROM membres WHERE id = ?'; $datas = array($id); //Execution de la requete (placée dans un bloc TRY/CATCH !! ) try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; $userinfo = $requete->fetch(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } } else{ echo " ID manquant !"; } ?> <!DOCTYPE html> <html> <head> <title> TEST PHP </title> <meta charset="utf-8"> </head> <body> <div align="center"> <?php if(!empty($userinfo)){ //récupération PROPRE des variables AVANT de les utiliser $pseudo = !empty($userinfo['pseudo']) ? $userinfo['pseudo'] : ""; $mail = !empty($userinfo['mail']) ? $userinfo['mail'] : ""; $user_id = !empty($userinfo['id']) ? $userinfo['id'] : ""; echo "<h2>Profil de $pseudo </h2> <br /><br /> Pseudo = $pseudo' <br /> Mail = $mail <br /> "; if($user_id == $session_id){ echo "<a href='#'>Editer mon profil</a>"; } }else{ echo " Utilisateur inconnu !"; } ?> </div> </body> </html>
jordane45
31 août 2020 à 12:56
- Messages postés
- 35475
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 22 mai 2022
31 août 2020 à 12:56
Si dans le code que je t'ai donné j'ai indiqué que le fichier se nomme cnxbdd.php.....c'est justement pour que tu crées ce fichier.......
9Ricky2
Modifié le 31 août 2020 à 13:06
- Messages postés
- 22
- Date d'inscription
- samedi 29 août 2020
- Statut
- Membre
- Dernière intervention
- 13 septembre 2020
- Messages postés
- 35475
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 22 mai 2022
Modifié le 31 août 2020 à 13:06
Merci Tout fonctionne parfaitement je vous remercie Bonne journée, soirée à vous
et excusez-moi du dérangement !:=)
et excusez-moi du dérangement !:=)