Les avertissements suivants se sont produits :
Warning [2] Undefined array key 0 - Line: 1640 - File: showthread.php PHP 8.2.18 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/showthread.php 1640 errorHandler->error_callback
/showthread.php 915 buildtree




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[résolu] Création de module : pb récupérer variables dans DoAction()
#3
Bonjour Bess,

Merci pour ton message.

J'ai finalement résolu mon problème.
Je ne sais pas si c'est la manière la plus propre mais elle a l'avantage de marcher...

En pratique, je dois me connecter à une autre base de donnée de celle de CMSMS et j'avais besoin de stocker les paramètres de connexion à cette autre base.
je dois exécuter dans le doAction() :
Code :
$link = mysql_connect($databaselocation, $databaseuser, $databasepass);
au départ, j'ai placé dans le fichier monModule.module.php le code :
Code :
$databaselocation = 'localhost';
$databasename= 'cms';
$databaseuser =  'root';
$databasepass ='';
mais lorsque j'exécutais le code
Code :
$link = mysql_connect($databaselocation, $databaseuser, $databasepass);
celui-ci retournait mysql_connect(, , );
c'est-à-dire que les valeurs étaient perdus.

Pour résoudre le problème, je les ai stocké dans une fonction "get_autre_Settings()" dans le fichier monModule.module.php:
Code :
function get_autre_Settings(){
        $settings = array(    'ls_db_location' => 'localhost',
                        'autre_db_name' => 'cms',
                        'autre_db_user' => 'root',
                        'autre_db_pass' => '',
                        );
        return($settings);
    }
puis, dans le fichier action.MonAction.php je récupère les valeurs par :
Code :
$autre_settings = get_autre_Settings();    
$databaselocation = $autre_settings['autre_db_location'];
$databasename= $autre_settings['autre_db_name'];
$databaseuser = $autre_settings['autre_db_user'];
$databasepass = $autre_settings['autre_db_pass'];

$link = mysql_connect($databaselocation, $databaseuser, $databasepass);
Ce qui fonctionne ! (retourne mysql_connect('localhost','root' ,'' );

Cependant, j'imagine qu'il aurait fallu que je passe par la programmation objet, avec laquelle je suis moins à l'aise, pour résoudre ce problème de manière plus adaptée . . .

Je place ce post comme "résolu", mais je reste ouvert à d'autres suggestions.


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)