Bonsoir tout le monde,

J'ai beau chercher mon erreur mais je ne la voit pas...(d'ailleurs il n'y en a peut etre pas ... )

J'ai une classe mymysqli que j'instancie a chaque page...
Dans le header :
<?php
try
{
$mysqllink=new mynmysqli($_SERVER['DOCUMENT_ROOT']."/global/site.ini.php");
}
catch (Exception $e) {print $e;exit(1);}
?>
Pour logguer un admin sur l'interface j'ai un login.php qui vérifie la connexion :
<?php
include_once($_SERVER['DOCUMENT_ROOT']."/global/lib.inc.php");
session_start();
try
{
$_SESSION['admin'] = new administrateur($mysqllink, $_POST['log'], $_POST['pass']);
if (
$_SESSION['admin']->connectUser())
header("Location: index_admin.php");
else
header("Location: index.php");
}
catch( Exception $e) {print $e;exit(1);}
?>
Jusque la tout vas bien je suis redirigé vers index_admin.php

Dans ce fichier index_admin.php je vérifie la session:

<?php
try
{
if (
$_SESSION['admin'])
{
if (!
$_SESSION['admin']->verifAuth($_SERVER['SCRIPT_NAME']))

{
unset(
$_SESSION);
session_destroy();
header("Location: index.php");
exit(-
1);
}
}else
{
header("Location: index.php");
exit(-
1);
}
}
catch (Exception $warEx)
{
echo
$warEx;
exit(
1);
}
?>
Les session_start() sont tous bien fait etc...
voila le code de la fonction verifAuth()
<?php
private
function checkLogin()
{
$query = "Select ADM_Login";
$query .= " FROM TBL_ADMIN";
$query .= " WHERE ADM_Login = '".$this->login."'";
$query .= " AND ADM_Pass = '".$this->password."'";
$result = $this->db->query($query);
if (
$result->num_rows == 1)
return (
true);
return (
false);
}

public function verifAuth($page)
{
if (
$this->checkLogin())
{
if (
ereg("^/admin/(.*).php", $page, $regs))
{
$temp = array();
foreach (
$this->listDroit as $key => $value)
if (
ereg("^$key", $regs[1], $tab))
$temp[] = $key;
if (
sizeof($temp)>0)
{
arsort($temp);
if (
$this->listDroit[$temp[0]])
return (
true);
}else
return
true;
}
}
return (
false);
}
?>
A la limite tout ces bout de code ne serventpas vraiment c'est juste pour que vous ayez tous.

Mon erreur arrive lors du checkLogin appelé dans la fonction verfiAuth
elle arrive a l'appelle de $this->db>query

Warning: Couldn't fetch mymysqli in /var/www/html/LEAVITAL/leanature.novactive.com/wwwroot/classes/mynovasql.class.php on line 35

Warning: Couldn't fetch mymysqli in /var/www/html/LEAVITAL/leanature.novactive.com/wwwroot/classes/mynovasql.class.php on line 36
Déjà moi je n'avais jamais vu ces erreurs... et je comprends vraiment pas... si c'est déja arrivé a quelqu'un

a ces lignes :
<?php
function query($query)
{
35
$result = parent::query($query);
36 if(
mysqli_error($this))
throw new SQLException(mysqli_error($this), mysqli_errno($this), $query);
return
$result;
}
?>
Merci d'avance


Note: Si je déclare mon abjet mymysqli en global dans ma classe administrateur ( c'est a dire si je ne la passe pas en argument dans le constructeur) et bien ca marche.. seulementce n'est pas top d'avoir a faire des global $mysqllink; dans chaque fonction c'est pourquoi je veux que chaque objet qui a besoin d'accéder a la base est un attribut $db que je rempli dans le constructeur... mais avec cette dernière methode ca coince...
++

Php 5.0.4 sur une BSD 5.4 avec mysql 4.1