Récupération des variables

Résolu
Bonjour,
mon problème est le suivant:
je n'arrive pas a récupérer des variables d'une autre classe php
voila mon code du fichier config.php:
<?php
class config
{
private $host='localhost'; // db host
private $user='root'; // db username
private $pass=''; // db password
private $db='db' ; // db name

public function connect()
{ private $link;
$link = mysql_connect ($host, $user, $pass);
mysql_select_db ($db,$link);

}

}
?>

j'essayais avec la commande suivante:
include 'config.php';

mais ça marche pas..
quelqu'un m'aidé et merci d'avance..

4 réponses

  1. Bonjour

    En premier lieu, tu devrais utiliser PDO plutôt que les fonctions mysql_ qui ne seront bientôt plus supportées en PHP.

    Mais ton problème vient d'une mauvaise utilisation des variables de ta classe. Effectivement, $host n'est pas défini dans ta fonction. C'est $this->host qu'il faut écrire, et idem pour toutes les variables de la classe dans toutes les méthodes (fonctions) de cette classe. Une ligne en guise d'exemple, à toi d'adapter les autres :
     $link = mysql_connect ($this->host, $this->user, $this->pass);
    1
    1. merci beaucoup "Le père" .. mon programme ça marche bien a cause de vous..
      :D
      0
  2. Modérateur
    Bonjour,
    Sans oublier (comme il te l'a été dit dans le message https://forums.commentcamarche.net/forum/affich-31858234-recuperation-des-variables#5) qu'il s'agit d'une CLASS .. donc on ne fait pas seulement un INCLUDE .. mais aussi un NE (et pour cela il faut un CONSTRUCT dans la class)

    <?php
    class config {
    private $host='localhost'// db host
            ,$user='root' // db username
            ,$pass='' // db password
            ,$db='db' ; // db name
    public $link;
    
     function __construct(){
       $this->connect();
    }
    
      private function connect()   {
       $this->link = mysql_connect ($this->host, $this->user, $this->pass);
       mysql_select_db ($db,$link);
       }
    
    }
    ?>
    


     require_once "config.php";
     $cfg= new config();
     $link = $cfg->link;
    


    Cordialement,
    Jordane
    1
    1. merci pour votre aide aussi .. j'arrive de résolu mon problème
      0
  3. Bonjour,

    Qu'est-ce qui ne marche pas exactement, ton include ?
    0
    1. j'essayais de connecter a mon base de données avec la classe config..
      le message d'erreur c'est que les varible $host, $user, $pass et $db ne sont pas définies..
      0
      1. montre au moins le code qui ne marche pas !
        0
      2. mon problème c'est comment récupérer la fonction connect dans une autre fichier php puisque la commande include ne marche pas et j'essayais plusieurs solution mais aucune résultat..
        je suis débutant en php ..en tt cas merci pour votre aide :D et j'attend une solution si tu peut :)
        0
      3. La réponse que tu cherches est
        (new config())->connect();

        Mais je ne pense pas que ça te serve à quoi que ce soit si tu ne comprends pas pouquoi ce que tu faisais avant était faux.
        0
      4. j'ai essayer avec votre commande et voila l'erreur:
        Undefined variable: host in C:\wamp\..\config.php on line 11
        meme problème pour les autre variable
        0