disponibilité variables connexion

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : disponibilité variables connexion

par Invité » 04 mai 2007, 17:41

plus précisément j'ai un fichier class contenant ma classe :
class DataObject_login extends DB_DataObject 
{
   var $__table = "login"; 
   var $idAdmin ;            
   var $mdpAdmin;                     
}
Et je tente d'instancier DataObject_login dans ma fonction checkPass
function checkPass($values)
{
        $login = new DataObjects_login;
       ...
}
Actuellement, l'instanciation de DataObjects_login est possible à l'extérieur de la fonction. A l'intérieur, php me dit que cette classe n'existe pas...

par Invité » 04 mai 2007, 17:32

super, merci beaucoup.
Et comment faire si c'est une classe de je veux rendre disponible dans ma fonction?

par epso » 04 mai 2007, 14:11

Dans ta fonction, juste avant le test, rajoute:
global $db;

disponibilité variables connexion

par Invité » 04 mai 2007, 14:00

Bonjour,
j'ai un fichier config.php dans lequel je crée une connexion à une bdd. Ce fichier est disponible pour toutes les pages de mon site en include.
$dsn = array(
    'phptype'  => 'mysql',
    'username' => 'admin',
    'password' => 'motdepasse',
    'hostspec' => 'localhost',
    'database' => 'mabdd',
);

$options = array(
    'debug'       => 2,
    'portability' => DB_PORTABILITY_ALL,
);

$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
    die($db->getMessage());
}
Dans un fichier fonctions.php, j'ai une fonction qui execute une requete sur la bdd, à partir de la connexion ci dessus. ce fichier est disponible pour toutes les pages de mon site en include.
function checkPass($values)
{

	$sql  = "SELECT idAdmin, mdpAdmin FROM login WHERE idAdmin  = '?' and mdpAdmin = '?'";
	$data = array($values['idAdmin'], $values['mdpAdmin']);
	if ($res =& $db->query($sql, $data)) 
	{
		js_redirect("index.php");	
	}
	else
	{
		js_redirect("admin.php");	
	}
}

Mon problème : l'instance de connexion $db qui a été créée dans config.php ( $db =& DB::connect($dsn, $options); ) n'est pas disponible dans ma fonction checkPass($values).

Si je suis dans une page quelconque de mon site et que je fais
checkpass($values), je reçois une erreur me disant que $db n'existe pas.

Comment rendre $db disponible pour toutes mes fonctions, dans devoir faire ceci à chaque fois :
checkPass($values, $db).

Merci pour vos réponses.