Récupération des variables

Résolu
ettto Messages postés 43 Statut Membre -  
ettto Messages postés 43 Statut Membre -
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

Utilisateur anonyme
 
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
ettto Messages postés 43 Statut Membre 6
 
merci beaucoup "Le père" .. mon programme ça marche bien a cause de vous..
:D
0
jordane45 Messages postés 40050 Statut Modérateur 4 756
 
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
ettto Messages postés 43 Statut Membre 6
 
merci pour votre aide aussi .. j'arrive de résolu mon problème
0
seabust Messages postés 811 Statut Membre 101
 
Bonjour,

Qu'est-ce qui ne marche pas exactement, ton include ?
0
ettto Messages postés 43 Statut Membre 6
 
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
seabust Messages postés 811 Statut Membre 101
 
montre au moins le code qui ne marche pas !
0
ettto Messages postés 43 Statut Membre 6
 
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
seabust Messages postés 811 Statut Membre 101
 
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
ettto Messages postés 43 Statut Membre 6
 
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