IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Appeller une fonction PhP


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Appeller une fonction PhP
    Bonjour / bonsoir

    Je souhaiterais appelé une fonction qui se trouve dans un fichier différent dans une autre fonction...

    L'appel de fonction qui de trouvé en commentaire ne fonctionne pas la requête Soap refuse de s'effectuer et ne trouve pas l'adresse.
    Photo en dessous.
    Nom : unknown.png
Affichages : 475
Taille : 11,5 Ko

    Nom : unknown.png
Affichages : 430
Taille : 7,3 Ko

    Merci d'avance (c'est sûrement simple mais je n'ai aucune connaissance en PhP)

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Actif ouais
    Inscrit en
    Septembre 2017
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Actif ouais

    Informations forums :
    Inscription : Septembre 2017
    Messages : 45
    Points : 32
    Points
    32
    Par défaut
    Bonjour,

    Comme t'as dis il faut appeler la fonction, et donc la chercher dans l'autre page :

    require : inclut le contenu d'un autre fichier appelé, et provoque une erreur bloquante s'il est indisponible
    require_once : même chose que require, mais ne le fait qu'une seule fois en tout et pour tout dans le même document, si require a déjà été appelé auparavant avec le même nom de fichier
    include : inclut le contenu d'un autre fichier appelé, mais ne provoque pas d'erreur bloquante s'il est indisponible
    include_once : même chose que include, mais ne le fait qu'une seule fois en tout et pour tout dans le même document si require a déjà été appelé auparavant avec le même nom de fichier

    Exemple : require("fonction.inc.php");

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Merci de la réponse mais ce n'est pas vraiment ce que je recherche ...

    car en réalité le code en commentaire return $this->instance->__soapCall('getMatiereName', $id_array);.
    Me renvoie ça en erreur sur la page :
    Nom : Capturde.PNG
Affichages : 419
Taille : 17,7 Ko

    Donc je cherche juste à appeler la fonction autrement pour voir si là ça fonctionne.
    J'ai oublié c'est une fonction SOAP (Webservice)

  4. #4
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    Cela fait quelques temps que je n'ai pas plongé dans php, mais l'erreur laisserait plutôt penser à un problème de connexion et non d'appel de fonction.
    Malheureusement, je pense qu'avec le peu de code que vous donnez, on ne pourra pas vous aider.

    Qu'y a-t-il avant la ligne 17?

    Pierre

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Bonjour et oui bien sur désolé voici le reste du code :

    Le Serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php //Code php
     
    class server //Création de la class server
    {
    	private $con;
        public function __construct()
        {
            $this->con = (is_null($this->con)) ? self::connect() : $this->con;
        }
    	static function connect()
    	{
    		$con = mysql_connect('localhost','root','root');
    		$db = mysql_select_db('soap',$con);
     
    		return $con;
    	}		
    	//CETTE FONCTION LA !
        public function getMatiereName($id_array)
        {
    		$sql = "SELECT name FROM students WHERE id = '$id'";
    		$qry= mysql_query($sql, $this->con);
    		$res = mysql_fetch_array($qry);
            return $res['name'];
        }
    }
    ini_set('soap.wsdl_cache_enabled',0);
    ini_set('soap.wsdl_cache_ttl',0);	
     
    $params = array('uri' => 'serveur.php');
    $server = new SoapServer(NULL, $params);
    $server->setClass('server');
    $server->handle();
     
    ?>
    Le Client : La ligne 17 est la ligne 18
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php 
    class client 
    {
        public function __construct()
        {
            $params = array('location' => 'http:\\wamp64\www\Projet\client.php',
                           'uri' => 'urn:http:\\wamp64\www\Projet\client.php',
                           'trace'=>1);
            $this->instance = new SoapClient(NULL, $params);
     
     
     
        }
     
        public function getName($id_array)
        { 
     
            return $this->instance->__soapCall('getMatiereName', $id_array);
     
        }
    }
     
    $client = new client;
    ?>
    Le Service :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    //EN PASSANT PAR CE SERVICE EGALEMENT
    include 'C:\wamp64\www\Projet\client.php';
    $id_array = array('id' => '1');
    echo $client->getName($id_array);
    ?>

  6. #6
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Je ne maîtrise rien aux classes.

    À vous lire, je ne comprends pas ce que vous cherchez à faire : vous indiquer les informations de connexion avant la récupération du nom du client?

    Pierre

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Le client veut récupérer des noms d'étudiants sur la DBB via le service (il ne sert qu'à ça) le serveur possède toutes les informations de la BDD et de connexion, le client c'est celui qui indique ou se connecter sur le serveur via justement cette fameuse ligne 18 ... mais ça ne fonctionne pas, on m'avait conseillé de faire un truc je ne sais pas si vous sauriez y arriver :

    "commencer par créer une propriété nommée instance, ensuite, ce n'est pas au fichier de la classe de l'initialiser en la stockant dans une variable, en gros ce qui est fait à l'avant dernière ligne, c'est à toi de le faire lorsque tu as inclue le fichier de la classe"

    Je ne connait pas du tout le PhP, en réalité j'ai suivi un tuto qui a malheureusement mal tourné ^^"

  8. #8
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    L'erreur que tu affiches n'est pas un problème de la fonction qui n'a pu être appelé mais plutôt le client soap qui n'a pas réussi à joindre le serveur.

    Vu l'appel que tu fais de SoapClient() tu est en mode "non WSDL" on est bien d'accord ?
    Ensuite tu lui passe un tableaux d'option (normal en mode non wsdl) mais tes adresses ne semble pas bonnes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $params = array('location' => 'http:\\wamp64\www\Projet\client.php',
                           'uri' => 'urn:http:\\wamp64\www\Projet\client.php',
                           'trace'=>1);
    location est normalement l'adresse du serveur or :
    - Elle pointe vers ton client
    - une url ne s'écrit pas avec des "\" mais des "/"
    - Elle devrait donc plutôt être http://Projet/server.php (en supposant que le fichier server.php existe)

    idem pour l'uri qui ne me semble pas particulièrement correcte.

    Tant que la connexion au webservice n'est pas réussie tu ne pourras pas appeler de fonction. C'es tvalable pour tous les langage pas que PHP
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Je ne maîtrise pas les histoires de classes.

    Question: à quoi sert la variable $db?

    Quand je lis ce bout de code,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    static function connect()
    	{
    		$con = mysql_connect('localhost','root','root');
    		$db = mysql_select_db('soap',$con);
     
    		return $con;}
    $db ne me semble servir à rien, et n'est pas retourné.

    Pierre

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Eh bien justement on viens de me faire la remarque ... effectivement c'était bien une erreur de connexion je n'y avait pas pensé car en mettant le lien de départ j'arrivais à destination du fichier ..
    Bon, merci à vous pour ce "problème"
    Restez à la maison !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lien <a href .. qui appelle une fonction php
    Par CristinaB dans le forum Langage
    Réponses: 1
    Dernier message: 30/05/2008, 16h03
  2. Appeler une fonction php toutes les x secondes
    Par alex_is_there dans le forum Langage
    Réponses: 7
    Dernier message: 20/04/2008, 11h32
  3. Réponses: 5
    Dernier message: 07/04/2008, 14h58
  4. Appeler une fonction php dans une requete mysql
    Par yobogs dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/11/2007, 13h43
  5. [JQUERY] Comment appeler une fonction php avec jquery
    Par popogendarme dans le forum jQuery
    Réponses: 1
    Dernier message: 20/03/2007, 16h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo