Page 1 sur 1

pb fonction

Posté : 04 juin 2018, 23:38
par quattro
Bonjour

Je me lance dans la creation de fct.
j'ai un formulaire avec qqes champs, exemple "nom".
j'ai creer une fct :

Code : Tout sélectionner

<?php class EntreePerso{ private $nom; //Setter public function setNom($newNom){ if (isset($newNom) & !empty($newNom)){ $this -> nom = $newNom; } } //Getter public function getNom(){ return $this -> nom; } } ?>
et dans la page html j'ai se bout de code :

Code : Tout sélectionner

include('../classe/entreePerso.class.php'); $nom = new EntreePerso(); $nom->setNom($_POST['nom']); echo $nom->getNom();
Quand, je lance le navigateur j'ai une erreur :
Notice: Undefined index: nom in C:\
il suffit d'appuyer 1 fois sur le Btn "valide" du formulaire et ca fct ??
je pense que cela vient de mon test dans la class...

Re: pb fonction

Posté : 05 juin 2018, 00:20
par @rthur
Bonjour,

Dans le message d'erreur, tu as la ligne et le nom du fichier où se produit l'erreur.
Quelle est la ligne concernée ?

Si il s'agit de la ligne $nom->setNom($_POST['nom']); c'est probablement parce que tu utilises une variable sans vérifier auparavant qu'elle existe (et en l'occurence si tu as un message d'erreur c'est qu'elle n'existe pas avant l'envoi de ton formulaire).

Re: pb fonction

Posté : 05 juin 2018, 12:46
par quattro
Bonjour
oui cela concerne bien la ligne que tu as cité. Mais pourtant la fonction fait bien le test avec :
if (isset($newNom) & !empty($newNom))

Re: pb fonction

Posté : 05 juin 2018, 12:55
par or 1
non, quand on écrit :
$nom->setNom($_POST['nom']);
cela exécute d'abord :
$_POST['nom']
ce qui génère le warning quand on est pas en méthode post après la soumission du formulaire.
puis la fonction setNom.

Re: pb fonction

Posté : 05 juin 2018, 13:16
par quattro
Merci or1
j'ai rajouté ceci :
$formNom = isset($_POST['nom']) ? $_POST['nom'] : NULL;

$nom = new EntreePerso();

$nom -> setNom($formNom);
echo $nom->getNom();

cela a l'ai de fonctionner

Re: [RESOLU] pb fonction

Posté : 06 juin 2018, 09:47
par quattro
bonjour
j'ai un autre soucis, maintenant cela affiche une erreur :
Catchable fatal error: Object of class EntreePerso could not be converted to string in C:
à la ligne 118. c'est à dire celle ci :
$req->execute(array('nom' => $nom,'prenom' => $prenom,'qualif' => $qualif));

sachant que 'qualif' dans mon code fait parti de mon formulaire sous cette forme :
<select class="form-adjust" name="qualif">
<option value="Responsable">Responsable</option>
<option value="Technicien">Technicien</option>
</select>
et que dans ma Bdd le champ qualif est de type "Varchar".....

Re: [RESOLU] pb fonction

Posté : 06 juin 2018, 10:01
par or 1
le message est parlant.
$nom = new EntreePerso();
sauf à ce que $nom ai été affecté par autre chose ensuite. c'est une objet de la classe EntreePerso et non une chaine de caractère. un objet ne peut pas être converti en string, d'où l'erreur.
mettre des bons noms de variable aurait éviter cette erreur.