Page 1 sur 1

Fatal error: Call to undefined function

Posté : 09 oct. 2013, 15:08
par albator59
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 ?

Re: Fatal error: Call to undefined function

Posté : 09 oct. 2013, 15:35
par yann18
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...

Re: Fatal error: Call to undefined function

Posté : 09 oct. 2013, 15:41
par albator59
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";
		}
	}
}
?> 

Re: Fatal error: Call to undefined function

Posté : 09 oct. 2013, 15:53
par yann18
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";
                }
        }
}
?> 

Re: Fatal error: Call to undefined function

Posté : 09 oct. 2013, 16:07
par albator59
Exact merci ça fonctione ! :D