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
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
A voir également:
- Probleme php : Notice: Undefined
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Php alert - Forum PHP
- Alert php ✓ - Forum PHP
- Bouton php - Forum PHP
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
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 :
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; }
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
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
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é ;)
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
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 !
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 !
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
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 ?
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
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
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 !
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 !
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
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 ?
$t = new EcrireMessage($_POST['recherchepseudo'], $_POST['listepseudo'], $_POST['objet'], $_POST['corp'],$PseudoJoueur);
donc le seul moyen ses de mettre des isset ?
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
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…
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…
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
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
<?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
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
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
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
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 ;)
Bon courage ;)