Probleme php : Notice: Undefined

Résolu/Fermé
DanyGrr Messages postés 29 Date d'inscription dimanche 16 août 2009 Statut Membre Dernière intervention 10 mars 2010 - 16 août 2009 à 19:42
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 - 16 août 2009 à 22:36
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
A voir également:

10 réponses

Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
16 août 2009 à 19:58
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 :
$variableExterieure = "coucou";
function machin() {
  global $variableExterieure;
  echo $variableExterieure;
}
1
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
16 août 2009 à 22:31
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
$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é ;)
1
DanyGrr Messages postés 29 Date d'inscription dimanche 16 août 2009 Statut Membre Dernière intervention 10 mars 2010 2
16 août 2009 à 20:14
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 !
0
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
16 août 2009 à 20:21
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DanyGrr Messages postés 29 Date d'inscription dimanche 16 août 2009 Statut Membre Dernière intervention 10 mars 2010 2
16 août 2009 à 20:32
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 !
0
DanyGrr Messages postés 29 Date d'inscription dimanche 16 août 2009 Statut Membre Dernière intervention 10 mars 2010 2
16 août 2009 à 20:45
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 ?
0
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
16 août 2009 à 20:59
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…
0
DanyGrr Messages postés 29 Date d'inscription dimanche 16 août 2009 Statut Membre Dernière intervention 10 mars 2010 2
16 août 2009 à 21:15
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
0
DanyGrr Messages postés 29 Date d'inscription dimanche 16 août 2009 Statut Membre Dernière intervention 10 mars 2010 2
16 août 2009 à 22:35
oua merci bocoup, en y repensant qu'elle erreur de debutant mdr, un grand merci a toi, maitenant il reste pus qu'a corrigé les autre script ayan cette erreur lol
0
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
16 août 2009 à 22:36
Et moi qui fais presque un tuto… tu as dû penser que je t'ai pris pour un noob ^^
Bon courage ;)
0