Probleme php : Notice: Undefined
Résolu
DanyGrr
Messages postés
29
Date d'inscription
Statut
Membre
Dernière intervention
-
Groarh Messages postés 682 Date d'inscription Statut Membre Dernière intervention -
Groarh Messages postés 682 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous, apres avoir cherchez quelque temps sur google et sur mon script, je poste pour la premiere fois sur un forum, tout ce que je sais sur l'erreur ces que la variable n'est pas initialiser mais voici mon code :
class EcrireMessage
{
public $RecherchePseudo = null;
public $ListePseudo = null;
public $Objet = null; les problemes je pense sont la mais ces la que je les intitialises!
public $Corp = null;
public $PseudoJoueur = null;
public $Resultat = null;
public $Erreur = '';
function __construct(/*$RecherchePseudo,$ListePseudo,$Objet,$Corp,*/$PseudoJoueur)
{
$this->RecherchePseudo = $_POST['recherchepseudo'];//$RecherchePseudo;
$this->ListePseudo = $_POST['listepseudo'];//$ListePseudo;
$this->Objet = $_POST['objet'];//$Objet;
$this->Corp = $_POST['corp'];//$Corp;
$this->PseudoJoueur = $PseudoJoueur;
$this->Date = date('d/m/y');
$this->Resultat = $Resultat;
$this->ErEntre = $Erreur;
$this->ErPseu = $Erreur;
$this->ErObj = $Erreur;
$this->ErMes = $Erreur;
$this->SQL &= $SQL;
voici les erreurs :
Notice: Undefined index: recherchepseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 15
Notice: Undefined index: listepseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 16
Notice: Undefined index: objet in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 17
Notice: Undefined index: corp in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 18
Notice: Undefined variable: Resultat in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 21
Notice: Undefined variable: Erreur in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 22
Notice: Undefined variable: Erreur in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 23
Notice: Undefined variable: Erreur in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 24
Notice: Undefined variable: Erreur in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 25
Notice: Undefined variable: SQL in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 26
donc je comprent rien, de ce que je comprent il me demande d'intitaliser la variable alors que ces exactement ce que je fais, si vous pourriez m'eclairer merci d'avance
class EcrireMessage
{
public $RecherchePseudo = null;
public $ListePseudo = null;
public $Objet = null; les problemes je pense sont la mais ces la que je les intitialises!
public $Corp = null;
public $PseudoJoueur = null;
public $Resultat = null;
public $Erreur = '';
function __construct(/*$RecherchePseudo,$ListePseudo,$Objet,$Corp,*/$PseudoJoueur)
{
$this->RecherchePseudo = $_POST['recherchepseudo'];//$RecherchePseudo;
$this->ListePseudo = $_POST['listepseudo'];//$ListePseudo;
$this->Objet = $_POST['objet'];//$Objet;
$this->Corp = $_POST['corp'];//$Corp;
$this->PseudoJoueur = $PseudoJoueur;
$this->Date = date('d/m/y');
$this->Resultat = $Resultat;
$this->ErEntre = $Erreur;
$this->ErPseu = $Erreur;
$this->ErObj = $Erreur;
$this->ErMes = $Erreur;
$this->SQL &= $SQL;
voici les erreurs :
Notice: Undefined index: recherchepseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 15
Notice: Undefined index: listepseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 16
Notice: Undefined index: objet in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 17
Notice: Undefined index: corp in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 18
Notice: Undefined variable: Resultat in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 21
Notice: Undefined variable: Erreur in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 22
Notice: Undefined variable: Erreur in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 23
Notice: Undefined variable: Erreur in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 24
Notice: Undefined variable: Erreur in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 25
Notice: Undefined variable: SQL in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 26
donc je comprent rien, de ce que je comprent il me demande d'intitaliser la variable alors que ces exactement ce que je fais, si vous pourriez m'eclairer merci d'avance
A voir également:
- Probleme php : Notice: Undefined
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
10 réponses
Salut,
ce serait pas tout bêtement un problème de majuscules ? Je vois des variables tout en minuscules dans les messages d'erreur…
Edit : je sais ! Ça m'arrive tout le temps aussi, c'est le truc chiant de PHP… Dans une fonction, il faut globaliser les variables qui viennent de l'extérieur :
ce serait pas tout bêtement un problème de majuscules ? Je vois des variables tout en minuscules dans les messages d'erreur…
Edit : je sais ! Ça m'arrive tout le temps aussi, c'est le truc chiant de PHP… Dans une fonction, il faut globaliser les variables qui viennent de l'extérieur :
$variableExterieure = "coucou"; function machin() { global $variableExterieure; echo $variableExterieure; }
Là je vois. Tu confonds juste l'opérateur d'affectation (=) avec l'opérateur de comparaison (==). Le double égal ne change rien aux variables utilisées ; par exemple si j'écris
En fait, les cinq premières lignes de ton script ressemblent à ceci :
Retire un signe égal aux cinq premières lignes et ton problème sera réglé ;)
$n = 12; $n == 12;ça revient à écrire juste
$n = 12; // je stocke le nombre 12 dans la variable true; // 12 == 12
En fait, les cinq premières lignes de ton script ressemblent à ceci :
<?php true; true; false; true; false; …D'où les messages d'erreurs correspondant à ces lignes (3, 4, 5, 6, 7) : tu essayes de comparer des variables qui ne sont pas définies. Et à la ligne 16, tu utilises toujours ces cinq variables qui ne sont pas définies.
Retire un signe égal aux cinq premières lignes et ton problème sera réglé ;)
deja merci pour la reponse rapide ;)
sinon cela m'a bien enlevé queleque erreurs, voici la suite :
class EcrireMessage
{
public $recherchepseudo = null;
public $listepseudo = null;
public $objet = null;
public $corp = null;
public $pseudojoueur = null;
public $resultat = null;
public $erreur = '';
function __construct($recherchepseudo,$listepseudo,$objet,$corp,$pseudojoueur)
{
global $pseudojoueur;
global $recherchepseudo;
global $listepseudo;
global $objet;
global $corp;
global $erreur;
global $resultat;
global $sql;
$this->RecherchePseudo = $recherchepseudo;
$this->ListePseudo = $listepseudo;
$this->Objet = $objet;
$this->Corp = $corp;
$this->PseudoJoueur = $pseudojoueur;
$this->Date = date('d/m/y');
$this->Resultat = $resultat;
$this->ErEntre = $erreur;
$this->ErPseu = $erreur;
$this->ErObj = $erreur;
$this->ErMes = $erreur;
$this->SQL &= $SQL;
les erreurs :
Notice: Undefined index: listepseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined index: objet in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined index: corp in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined variable: PseudoJoueur in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined variable: SQL in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 35
donc j'ai bien tout mi en minuscule, je l'ai ai tous transformer en global même si je sais pas pourquoi et il reste des erreurs !
sinon cela m'a bien enlevé queleque erreurs, voici la suite :
class EcrireMessage
{
public $recherchepseudo = null;
public $listepseudo = null;
public $objet = null;
public $corp = null;
public $pseudojoueur = null;
public $resultat = null;
public $erreur = '';
function __construct($recherchepseudo,$listepseudo,$objet,$corp,$pseudojoueur)
{
global $pseudojoueur;
global $recherchepseudo;
global $listepseudo;
global $objet;
global $corp;
global $erreur;
global $resultat;
global $sql;
$this->RecherchePseudo = $recherchepseudo;
$this->ListePseudo = $listepseudo;
$this->Objet = $objet;
$this->Corp = $corp;
$this->PseudoJoueur = $pseudojoueur;
$this->Date = date('d/m/y');
$this->Resultat = $resultat;
$this->ErEntre = $erreur;
$this->ErPseu = $erreur;
$this->ErObj = $erreur;
$this->ErMes = $erreur;
$this->SQL &= $SQL;
les erreurs :
Notice: Undefined index: listepseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined index: objet in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined index: corp in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined variable: PseudoJoueur in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined variable: SQL in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/Fonction/Fonction.php on line 35
donc j'ai bien tout mi en minuscule, je l'ai ai tous transformer en global même si je sais pas pourquoi et il reste des erreurs !
Il reste des majuscules ^^ et puis fais gaffe, il manque un guillemet quand tu définis $erreur.
Sinon, rien à voir mais l'opérateur &= que tu utilises, c'est quoi ?
Sinon, rien à voir mais l'opérateur &= que tu utilises, c'est quoi ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
toujour le même souci, sinon j'ai oublie de donner un élément important :
class EcrireMessage
{
public $recherchepseudo = null;
public $listepseudo = null;
public $objet = null;
public $corp = null;
public $pseudojoueur = null;
public $resultat = null;
public $erreur = null;
function __construct($recherchepseudo,$listepseudo,$objet,$corp,$pseudojoueur) //toutes ces variables sauf le pseudo joueur vienne des variables POST
{
global $pseudojoueur;
if(isset($recherchepseudo))global $recherchepseudo; donc jai essayer de faire ca mais le souci vient des la 3eme lignes
global $listepseudo;
global $objet;
global $corp;
global $erreur;
global $resultat;
global $sql;
$this->RecherchePseudo = $recherchepseudo;
$this->ListePseudo = $listepseudo;
$this->Objet = $objet;
$this->Corp = $corp;
$this->PseudoJoueur = $pseudojoueur;
$this->Date = date('d/m/y');
$this->Resultat = $resultat;
$this->ErEntre = $erreur;
$this->ErPseu = $erreur;
$this->ErObj = $erreur;
$this->ErMes = $erreur;
$this->SQL = $sql;
}
les erreurs :
Notice: Undefined index: recherchepseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined index: listepseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined index: objet in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined index: corp in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined variable: PseudoJoueur in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
ce qui est bizarre les erreurs vienne tous de la fonction construct !
class EcrireMessage
{
public $recherchepseudo = null;
public $listepseudo = null;
public $objet = null;
public $corp = null;
public $pseudojoueur = null;
public $resultat = null;
public $erreur = null;
function __construct($recherchepseudo,$listepseudo,$objet,$corp,$pseudojoueur) //toutes ces variables sauf le pseudo joueur vienne des variables POST
{
global $pseudojoueur;
if(isset($recherchepseudo))global $recherchepseudo; donc jai essayer de faire ca mais le souci vient des la 3eme lignes
global $listepseudo;
global $objet;
global $corp;
global $erreur;
global $resultat;
global $sql;
$this->RecherchePseudo = $recherchepseudo;
$this->ListePseudo = $listepseudo;
$this->Objet = $objet;
$this->Corp = $corp;
$this->PseudoJoueur = $pseudojoueur;
$this->Date = date('d/m/y');
$this->Resultat = $resultat;
$this->ErEntre = $erreur;
$this->ErPseu = $erreur;
$this->ErObj = $erreur;
$this->ErMes = $erreur;
$this->SQL = $sql;
}
les erreurs :
Notice: Undefined index: recherchepseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined index: listepseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined index: objet in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined index: corp in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined variable: PseudoJoueur in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
ce qui est bizarre les erreurs vienne tous de la fonction construct !
sayai j'ai trouvé ! enfete le souci vient pus de ce fichier mais de celui la :
$t = new EcrireMessage($_POST['recherchepseudo'], $_POST['listepseudo'], $_POST['objet'], $_POST['corp'],$PseudoJoueur);
donc le seul moyen ses de mettre des isset ?
$t = new EcrireMessage($_POST['recherchepseudo'], $_POST['listepseudo'], $_POST['objet'], $_POST['corp'],$PseudoJoueur);
donc le seul moyen ses de mettre des isset ?
Il reste des majuscules dans les membres en $this->… . Tu ne les as pas vues après trois passages, tu devrais peut-être faire une pause ? ^^
Mais il restera une erreur qui vient, je pense, du script appelant. Est-ce que par hasard ton objet de la classe EcrireMessage serait instancié avant la définition des variables $recherchepseudo, etc. qui sont extérieures à la classe ?
Pense au cas de figure où l'utilisateur ne renseigne pas tous les champs POST : il faut que tu prévoies une fonction de vérification qui « comble les trous », par exemple avec des chaînes vides. Ou mieux, qui demande à l'utilisateur de compléter la saisie.
Edit : je n'avais pas vu ta dernière réponse :S
Oui, isset est une solution pour éviter les messages d'erreur, mais ça veut dire qu'il va manquer des données…
Mais il restera une erreur qui vient, je pense, du script appelant. Est-ce que par hasard ton objet de la classe EcrireMessage serait instancié avant la définition des variables $recherchepseudo, etc. qui sont extérieures à la classe ?
Pense au cas de figure où l'utilisateur ne renseigne pas tous les champs POST : il faut que tu prévoies une fonction de vérification qui « comble les trous », par exemple avec des chaînes vides. Ou mieux, qui demande à l'utilisateur de compléter la saisie.
Edit : je n'avais pas vu ta dernière réponse :S
Oui, isset est une solution pour éviter les messages d'erreur, mais ça veut dire qu'il va manquer des données…
donc jai fai ca mais sa marche pas :
<?php
$RecherchePseudo == null;
$ListePseudo == null;
$Objet == null;
$Corp == null;
$pseudojoueur == null;
if(isset($_POST['recherchepseudo'])) $RecherchePseudo = $_POST['recherchepseudo'];
if(isset($_POST['listepseudo'])) $ListePseudo = $_POST['listepseudo'];
if(isset($_POST['objet'])) $Objet = $_POST['objet'];
if(isset($_POST['corp'])) $Corp = $_POST['corp'];
if(isset($PseudoJoueur)) $pseudojoueur= $PseudoJoueur;
$t = new EcrireMessage($RecherchePseudo, $ListePseudo, $Objet, $Corp,$pseudojoueur);
$t->SQL();
$t->Empti();
$t->Erreur();
$t->Text();
$t->Liste();
$t->Enregistre();
$t->Affiche();
echo $t;
Notice: Undefined variable: RecherchePseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined variable: ListePseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 4
Notice: Undefined variable: Objet in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 5
Notice: Undefined variable: Corp in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 6
Notice: Undefined variable: pseudojoueur in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 7
Notice: Undefined variable: RecherchePseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 16
Notice: Undefined variable: ListePseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 16
Notice: Undefined variable: Objet in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 16
Notice: Undefined variable: Corp in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 16
Notice: Undefined variable: pseudojoueur in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 16
la je sais pu quoi faire, sinon d'apres les erreurs il y en a pus dans le script préscedent , donc ces dans ce fichier qu'il y a les erreurs
<?php
$RecherchePseudo == null;
$ListePseudo == null;
$Objet == null;
$Corp == null;
$pseudojoueur == null;
if(isset($_POST['recherchepseudo'])) $RecherchePseudo = $_POST['recherchepseudo'];
if(isset($_POST['listepseudo'])) $ListePseudo = $_POST['listepseudo'];
if(isset($_POST['objet'])) $Objet = $_POST['objet'];
if(isset($_POST['corp'])) $Corp = $_POST['corp'];
if(isset($PseudoJoueur)) $pseudojoueur= $PseudoJoueur;
$t = new EcrireMessage($RecherchePseudo, $ListePseudo, $Objet, $Corp,$pseudojoueur);
$t->SQL();
$t->Empti();
$t->Erreur();
$t->Text();
$t->Liste();
$t->Enregistre();
$t->Affiche();
echo $t;
Notice: Undefined variable: RecherchePseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 3
Notice: Undefined variable: ListePseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 4
Notice: Undefined variable: Objet in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 5
Notice: Undefined variable: Corp in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 6
Notice: Undefined variable: pseudojoueur in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 7
Notice: Undefined variable: RecherchePseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 16
Notice: Undefined variable: ListePseudo in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 16
Notice: Undefined variable: Objet in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 16
Notice: Undefined variable: Corp in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 16
Notice: Undefined variable: pseudojoueur in /srv/www/htdocs/SiteLadysa44/src/Module/Messagerie/EcrireMessage.php on line 16
la je sais pu quoi faire, sinon d'apres les erreurs il y en a pus dans le script préscedent , donc ces dans ce fichier qu'il y a les erreurs