[RESOLU] Fatal error: Call to undefined function

Eléphanteau du PHP | 12 Messages

09 oct. 2013, 15:08

Bonjour,

Voila j'ai ce message d'erreur :
Fatal error: Call to undefined function NomDomaine() in /home/projetsm/www/mailjet/index.php on line 28

Voici ma fonction NomDomaine() :
require_once('php-mailjet.class-mailjet-0.1.php');
 
class NomDomaine
{
	var $smtp;
 
    var $methode = 'userDomainlist';
 
	var $option = array();
 
	var $type = 'GET';
 
	public function __construct()
	{
		$this->smtp = new Mailjet();
	}
 
	public function NomDomaine()
	{
		$therequest = $smtp->sendRequest($methode,$option,$type);
 
		if($therequest === true)
		{ 
 
		$outgoing = $smtp->_response;
 
		foreach( $outgoing->domains as $valeur)  
		    { 
			    echo '<tr><td>'.$valeur->domain.'</td></tr>';
		    } 
 
		} 
		else{ 
			echo "Erreur de r&eacute;cup&eacute;ration des donn&eacute;es";
		}
	}
et voila ou je l'appelle :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <meta http-equiv="Content-Language" content="fr" />
 <meta name="author" content="Thibaut Lallement" />
 <title>
 	 Statistique Mailjet
 </title>
</head>
<header>
		<?php include ('NomDomaine.php'); ?>
</header>
<body>
	<p>
		<h1>Bienvenu sur l'interface Web de votre compte MailJet : </h1>
	</p>
	<center><table border="3">
		<tr>
			<td>
				Nom du domaine :
			</td>
			<td>
				Nombre d'email envoyé :
			</td>
		</tr> 
		<?php NomDomaine(); ?>
	</table></center>
</body>
</html>
Pour faire un petit résumé ma fonction me permet de récupérer des données grâce a une méthode d'une API e je souhaite juste afficher les données dans mon tableau !

Quelle grossière erreur ai-je faite cette fois ci ?

Mammouth du PHP | 571 Messages

09 oct. 2013, 15:35

bonjour,

avant d'appeler une méthode de la classe NomDomaine il faut déjà instancier cette classe en créant un objet.A partir de l'objet crée tu peux maintenant invoquer la méthode NomDomaine() :
//à l'appel:
$domaine = NomDomaine() ; //instanciation de la classe NomDomaine
//appel à la méthode NomDomaine() 
$domaine->NomDomaine() ;
les attributs de classe ne doivent pas être déclares avec var en php5 utilises plutôt private, protected...

Eléphanteau du PHP | 12 Messages

09 oct. 2013, 15:41

Je te remercie de ta réponse j'ai corrigé !

Mais maintenant j'ai ce message qui m'embête : Fatal error: Call to a member function sendRequest() on a non-object in /home/projetsm/www/mailjet/Domaine.php on line 22

Et voici mon code :
<?php 

require_once('php-mailjet.class-mailjet-0.1.php');

class Domaine
{
	private $smtp;

    private $methode = 'userDomainlist';

	private $option = array();

	private $type = 'GET';

	public function __construct()
	{
		$this->smtp = new Mailjet();
	}

	public function NomDomaine()
	{
		$therequest = $smtp->sendRequest($methode,$option,$type);

		if($therequest === true)
		{ 

		$outgoing = $smtp->_response;

		foreach( $outgoing->domains as $valeur)  
		    { 
			    echo '<tr><td>'.$valeur->domain.'</td></tr>';
		    } 

		} 
		else{ 
			echo "Erreur de r&eacute;cup&eacute;ration des donn&eacute;es";
		}
	}
}
?> 

Mammouth du PHP | 571 Messages

09 oct. 2013, 15:53

un attribut de classe s'appel avec le mot clé $this(ex: $this->smtp)

<?php

require_once('php-mailjet.class-mailjet-0.1.php');

class Domaine
{
        private $smtp;

    private $methode = 'userDomainlist';

        private $option = array();

        private $type = 'GET';

        public function __construct()
        {
                $this->smtp = new Mailjet();
        }

        public function NomDomaine()
        {
                $therequest = $this->smtp->sendRequest($methode,$option,$type);

                if($therequest === true)
                {

                $outgoing = $this->smtp->_response;

                foreach( $outgoing->domains as $valeur)  
                    {
                            echo '<tr><td>'.$valeur->domain.'</td></tr>';
                    }

                }
                else{
                        echo "Erreur de r&eacute;cup&eacute;ration des donn&eacute;es";
                }
        }
}
?> 

Eléphanteau du PHP | 12 Messages

09 oct. 2013, 16:07

Exact merci ça fonctione ! :D