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 :
Pour logguer un admin sur l'interface j'ai un login.php qui vérifie la connexion :<?php
try {
$mysqllink=new mynmysqli($_SERVER['DOCUMENT_ROOT']."/global/site.ini.php");
}catch (Exception $e) {print $e;exit(1);}
?>
Jusque la tout vas bien je suis redirigé vers index_admin.php<?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);}
?>
Dans ce fichier index_admin.php je vérifie la session:
Les session_start() sont tous bien fait etc...<?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);
}
?>
voila le code de la fonction verifAuth()
A la limite tout ces bout de code ne serventpas vraiment c'est juste pour que vous ayez tous.<?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);
}
?>
Mon erreur arrive lors du checkLogin appelé dans la fonction verfiAuth
elle arrive a l'appelle de $this->db>query
Déjà moi je n'avais jamais vu ces erreurs... et je comprends vraiment pas... si c'est déja arrivé a quelqu'unWarning: 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
a ces lignes :
Merci d'avance<?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;
}
?>
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
Partager