salut a tous
voila mon problème j'utilise des objets et les sessions mais voilà lorsque je fixe mon objet dans ma session je le récupére vide et je ne peut utiliser les méthodes qui l'implémente on ma dit d'utiliser les méthode __sleep et __wake mais cela ne fonctionne pas pour autant
page contenant les définition d'objets
<?php
class object
{
protected $reseau=0;
protected $database=0;
public $sql="select * from marque ";
private function connection()
{
$this->reseau=@mssql_connect("JACK-2790B2F285","","");
if($this->reseau!=0)
{
$this->database=@mssql_select_db("PTI",$this->reseau);
if($this->database==0)
exit();
}
else
exit();
}
private function __construct()
{
$this->connection();
//$this->direc();
}
}
class requete extends object
{
private $contenue;
private function requete()
{
if(strpos($this->sql,'insert')===false)
{
if(strpos($this->sql,'delete')===false)
{
if(strpos($this->sql,'update')===false)
{
return 0;
}
else return 1;
}
else return 1;
}
else return 1;
}
public function direc()
{
if($this->requete()==1)
$this->requetegene();
else
$this->requeteselect();
}
private function requetegene()
{
if(get_magic_quotes_gpc())
mssql_query($this->sql,$this->reseau);
else
{
$this->sql=addcslashes($this->sql);
mssql_query($this->sql,$this->reseau);
}
}
private function requeteselect()
{
if(get_magic_quotes_gpc())
{
$this->contenue=@mssql_query($this->sql,$this->reseau);
if(@mssql_num_rows($this->contenue)!=0)
{
$j=@mssql_num_fields($this->contenue);
while($ligne=mssql_fetch_row($this->contenue))
{
echo"<tr>";
for($i=0;$i<$j;$i++)
echo "<td><a href='$_SERVER[REQUEST_URI]'?vari=$ligne[$i]>".trim($ligne[$i])."</a></td>";
echo"</tr>";
}
}
elseif($this->contenue==0)
die("désolé une erreur s'est produite");
}
else
{
$this->sql=addcslashes($this->sql);
$contenue=mssql_query($this->sql,$this->reseau);
if(mssql_num_rows($contenue)!=0)
{
$j=mssql_num_fields($contenue);
while($ligne=mssql_fetch_row($contenue))
{
echo"<tr>";
for($i=0;$i<$j;$i++)
echo "<td>".$ligne[$i]."</td>";
echo"</tr>";
}
}
}
}
public function mutateur($res)
{
$this->sql=$res;
$this->direc();
}
public function __construct($init="")
{
$this->sql=$init;
parent::__construct();
}
public function __wake()
{
if($this->reseau==0)
parent::__construct();
}
public function __sleep()
{
}
}
?>
1ère page
<?php
session_start();
include("obj.php");//contient les objets déclaré en haut
$monobjet=new requete("select lisoustype from sous_type;");
$_SESSION[objet]=$monobjet;
//dans cette page j'ai un lien qui m'enmène sur la seconde feuille
?>
2ème page
<?php
session_start();
if(empty($_REQUEST[name])==false && isset($_REQUEST[name])==true)//lorsque le formulaire est validé
$_SESSION[objet]->mutateur();
?>
mais lors de l'appel de cette fonction
$_SESSION[objet]->mutateur();
J'ai cette erreur:
Fatal error: main() [function.main]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "requete" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in c:\wamp\www\inscription.php on line 92