Récupération des variables

Résolu
ettto Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   -  
ettto Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   -
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 40 Date d'inscription   Statut Membre Dernière intervention   6
 
merci beaucoup "Le père" .. mon programme ça marche bien a cause de vous..
:D
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 40 Date d'inscription   Statut Membre Dernière intervention   6
 
merci pour votre aide aussi .. j'arrive de résolu mon problème
0
seabust Messages postés 741 Date d'inscription   Statut Membre Dernière intervention   101
 
Bonjour,

Qu'est-ce qui ne marche pas exactement, ton include ?
0
ettto Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   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 741 Date d'inscription   Statut Membre Dernière intervention   101
 
montre au moins le code qui ne marche pas !
0
ettto Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   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 741 Date d'inscription   Statut Membre Dernière intervention   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 40 Date d'inscription   Statut Membre Dernière intervention   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