Bonjour,

Voilà, j'ai un problème avec un include, je vais tâcher d'être clair.

J'appelle dans toutes mes pages un fichier en include, qui lui en appelle 4.

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
<?php
 
session_start();
 
require('./inc/identifiants_bdd.php');
 
require('./inc/class_sql.inc.php');
 
//démarrage de la connexion
$db = new connexion($host, $user, $pass, $base);
 
require('./inc/bibliotheque.php');
 
require('./inc/structure.php');
 
?>
Mon problème se situe dans mon fichier bibliotheque(fonctions) et structure(fonctions de structure de la page).

J'ai besoin de faire des requêtes dans certaines de mes fonctions, seulement php réagit comme si la connexion n'a pas été déclarée.

Exemple dans structure.php, j'ai une fonction qui me permet d'afficher un petit menu horizontal, et dans celle-ci, j'ai une requête pour vérifier si l'utilsateur a de nouveaux mp.

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
function menu()
{
    if( !isset($_SESSION['user']) )
    {
        $connect = '<li class="mhd"><a href="membre-connexion.php">Connexion</a></li>';
    }
    else
    {
        $connect = '<li class="mhd"><a href="membre-deconnexion.php">déconnexion</a></li>';
        $connect .= '<li class="mhd"><a href="membre-options.php">' . $_SESSION['user']['name'] . '</a></li>';
        // sélection des mp non-lus
        $sql = 'SELECT COUNT(*) FROM mp_lecture WHERE user_id=' .$_SESSION['user']['id'];
        $nb = $db -> req($sql, RESULT);
 
        $connect .= '<li class="mhd"><a href="membre-mp.php">' . $nb . ' messages</a></li>';
    }
 
    // etc..........
Seulement voilà, j'ai un : Fatal error: Call to a member function req() on a non-object

Je ne comprends pas trop, je fais bien appel à ma classe sql, et donc la connexion est bien ouverte.

Si j'utilise cette requête dans une page appelante, ça fonctionne très bien

Pourquoi php réagit de cette façon ?
Comment remédier au problème ?