[PHP] [BDD] Erreur "Undefined index"
Résolu
Anonymous
-
Anonymous -
Anonymous -
Bonjour j'ai besoin de votre aide s'il vous plaît !
Je suis en train de créer un espace membre avec un profil et je suis rendu à la création d'un éditeur de profil. Je crée mon formulaire etc... mais au moment où je dois écrire le code qui permet d'envoyer à ma base de données les modifications de profil j'ai un problème qui me dit: "Undefined index: newpseudo in..."
$newpseudo qui est la variable pour envoyer le nouveau pseudo de la personne qui souhaite le changer.
Voici le code qui produit l'erreur:
Voilà merci d'avance de votre aide !
Je suis en train de créer un espace membre avec un profil et je suis rendu à la création d'un éditeur de profil. Je crée mon formulaire etc... mais au moment où je dois écrire le code qui permet d'envoyer à ma base de données les modifications de profil j'ai un problème qui me dit: "Undefined index: newpseudo in..."
$newpseudo qui est la variable pour envoyer le nouveau pseudo de la personne qui souhaite le changer.
Voici le code qui produit l'erreur:
if(isset($_POST['newpseudo']) AND !empty($_POST['newpseudo']) AND $_POST['newpseudo'] != $user['pseudo']);
{
$newpseudo = htmlspecialchars($_POST['newpseudo']);
$insertpseudo = $bdd->prepare("UPDATE membres SET pseudo = ? WHERE id = ?");
$insertpseudo->execute(array($newpseudo, $_SESSION['id']));
}
Voilà merci d'avance de votre aide !
A voir également:
- [PHP] [BDD] Erreur "Undefined index"
- Index téléphonique - Guide
- Telecharger index - Télécharger - Gestion de fichiers
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
3 réponses
Bonjour,
Il semble que la variable newPseudo ne soit pas bien orthographiée ou n'existe tout simplement pas dans ton $_POST.
NB : Le htmlspecialchar .. s'utilise pour AFFICHER les données .. pas pour l'insertion en BDD.
et vu que tu utilises la PDO et les requêtes préparées, les risques d'injection SQL sont limités .. donc il n'est pas nécessaire de l'utiliser !
Il semble que la variable newPseudo ne soit pas bien orthographiée ou n'existe tout simplement pas dans ton $_POST.
//Récupération des variables AVANT de les utiliser $newpseudo = !empty($_POST['newpseudo']) ? $_POST['newpseudo'] : NULL; $userPseudo = !empty($user['pseudo'])? $user['pseudo'] : NULL; if($newpseudo && $newpseudo != $userPseudo) { $insertpseudo = $bdd->prepare("UPDATE membres SET pseudo = ? WHERE id = ?"); $insertpseudo->execute(array($newpseudo, $_SESSION['id'])); }else{ echo "<br>Erreur ! newpseudo n'existe pas ou est identique à userPseudo"; echo "<br> userPseudo : ".$userPseudo; echo "<br> newpseudo : ".$newpseudo ; }
NB : Le htmlspecialchar .. s'utilise pour AFFICHER les données .. pas pour l'insertion en BDD.
et vu que tu utilises la PDO et les requêtes préparées, les risques d'injection SQL sont limités .. donc il n'est pas nécessaire de l'utiliser !
ReBonjour jordane45 :D
Je comprend pas tout ^^ mais pour résoudre mon problème je dois faire quoi du coup ?
NB: Ce code:
je dois le mettre quelque part ?
Je comprend pas tout ^^ mais pour résoudre mon problème je dois faire quoi du coup ?
NB: Ce code:
//Récupération des variables AVANT de les utiliser $newpseudo = !empty($_POST['newpseudo']) ? $_POST['newpseudo'] : NULL; $userPseudo = !empty($user['pseudo'])? $user['pseudo'] : NULL; if($newpseudo && $newpseudo != $userPseudo) { $insertpseudo = $bdd->prepare("UPDATE membres SET pseudo = ? WHERE id = ?"); $insertpseudo->execute(array($newpseudo, $_SESSION['id'])); }else{ echo "<br>Erreur ! newpseudo n'existe pas ou est identique à userPseudo"; echo "<br> userPseudo : ".$userPseudo; echo "<br> newpseudo : ".$newpseudo ; }
je dois le mettre quelque part ?
Je l'ai tester et remplacé a la place de:
Et j'ai eu l'erreur:
if(isset($_POST['newpseudo']) AND !empty($_POST['newpseudo']) AND $_POST['newpseudo'] != $user['pseudo']); { $newpseudo = htmlspecialchars($_POST['newpseudo']); $insertpseudo = $bdd->prepare("UPDATE membres SET pseudo = ? WHERE id = ?"); $insertpseudo->execute(array($newpseudo, $_SESSION['id'])); }
Et j'ai eu l'erreur:
Erreur ! newpseudo n'existe pas ou est identique à userPseudo
userPseudo :
newpseudo :
( ! ) Notice: Undefined index: newmail in C:\wamp\www\*********\edition_profil.php on line 27
PS :
Merci de préciser le LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
Merci de préciser le LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.