Bonjour,
Mon problème prend plusieurs sujet. La POO, les sessions, et le sqli. Il fallait bien choisir un endroit alors je suis venu ici.
Pour faire simple j'ai une class qui hérite de mysqli, et je lui rajoute des méthodes propre qui utilise les méthodes parents de mysqli. Pour aller au plus simple j'ai fait une méthode affichage() qui m'affiche une connerie juste pour voir si cela fonctionne.
Pour mes besoin j'ai du créer une fonction qui test si une variable de session existeet c'est le cas j'appel les méthodes de mon objet contenu en session, je détruit tout. Puis je recréer un objet que je remet en session.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $_SESSION['connexion']
Le but évidement est de créer une nouvelle connexion dans certain cas.
voici ma fonction
Vous remarquerez que j'ai bien inclus ma class avant le session_start, et que j'ai aussi des var_dump pour voir si mon objet existe et il existe bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 include('class_connexion.php'); session_start(); function mysqlI_create_co(){ //unset($_SESSION['connexion']); var_dump($_SESSION['connexion']); try{ $aOpt = array( 'server' => 'localhost' ,'login' => '****' ,'password' => '****' ,'bdd' => '*****' ); echo 'dans le try<br>'; if( isset($_SESSION['connexion']) && !empty($_SESSION['connexion']) ){ echo 'je suis dans le if<br>'; $_SESSION['connexion']->affichage(); if( $_SESSION['connexion']->test_connexion_exist() ){ echo 'je suis dedans<br>'; $_SESSION['connexion']->destroy_co(); } $_SESSION['connexion'] = array(); unset($_SESSION['connexion']); } echo 'create session<br>'; var_dump($_SESSION['connexion']); $_SESSION['connexion'] = new myMySQLi($aOpt); var_dump($_SESSION['connexion']); }catch(Exception $e){ echo $e->getMessage(); echo $e->getLine(); echo $e->getFile(); echo $e->getTrace(); } }
Je sais que en session, je ne transporte pas le méthode de l'objet mais je dois normalement y avoir accès si la class est incluse.
Quand a me méthode affichage() elle fait un simple echo.
Je me retrouve avec cette erreur.
Et le plus étrange c'est que j'ai cette erreur sous chrome mais pas sous firefox.... pourquoi?"Fatal error: Call to undefined method mysqli::affichage() in /Users/gael/Sites/MySQLi/fonction.php on line"
J'éspère avoir été suffisamment clair.
Partager