Problème variable et "Include()"

a marqué ce sujet comme résolu.

Bonjour,

Petit soucis au niveau de l’include du fichier contenant les informations de connection à ma bdd.

J’ai le fichier suivant :

XXX.php

<?php
try
    {
        $bdd = new PDO('mysql:host=XXX;dbname=XXX;charset=utf8', 'XXX', 'XXX');
    }
catch (Exception $e)
    {
                die('Erreur : ' . $e->getMessage());
    }
?>

Que j’inclus dans un fichier qui ajoute des données à ma bdd :

YYY_ADD.php

<?php  
include("XXX.php");

[ETC ...]

/*LIGNE 102*/ $req = $bdd->prepare('INSERT INTO Philips(Marque, Modele, Annee, Type, Commentaire, LPA, LI, TOKEN_1, TOKEN_2) VALUES(:Marque, :Modele, :Annee, :Type, :Commentaire, :LPA, :LI, :TOKEN_1, :TOKEN_2)');
$req->execute(array(
    'Marque' => $Marque,
    'Modele' => $Modele,
    'Annee' => $Annee,
    'Type' => $Type,
    'Commentaire' => $Commentaire,
    'LPA' => $LPA,
    'LI' => $LI,
    'TOKEN_1' => $TOKEN_1,
    'TOKEN_2' => $TOKEN_2
));
echo 'Opération validée !';

[ETC ...]

et j’ai l’erreur suivante :

Notice: Undefined variable: bdd in YYY_ADD.php on line 102

Fatal error: Uncaught Error: Call to a member function prepare() on null in YYY_ADD.php:102 Stack trace: #0 {main} thrown in YYY_ADD.php on line 102

Mais si je fais :

YYY_ADD.php

<?php  
/*include("XXX.php");*/

/*Contenu de XXX.php :*/
try
    {
        $bdd = new PDO('mysql:host=XXX;dbname=XXX;charset=utf8', 'XXX', 'XXX');
    }
catch (Exception $e)
    {
                die('Erreur : ' . $e->getMessage());
    }

[ETC ...]

Il n’y a plus aucun problème …

Alors que sur une autre page ou je viens lire des données, ca fonctionne impec' …

ZZZ_LECTURE.php

<?php  
include("XXX.php");

[ETC ...]

Et le mieux c’est que ca fonctionnait très bien hier ( et du-jours au lendemain, sans avoir fait de modif' il me semble), je me retrouve avec cette erreur …

Que pasa ?! j’y comprend rien …

+0 -0

Merci ^^ Mais j’ai déjà vu ce lien sur quelqu’un qui à eu le même problème que moi, mais ça ne m’a pas plus aidé que ça … J’ai pas tout bien compris le rapport avec mon problème :/ d’autant plus que ça marchait sans problème hiers ? 🤔

Je comprends pas pourquoi je suis embêté par une variable qu’il ne connait pas alors qu’elle est inclus et donc bien présente ?!

+0 -0

Si ça fonctionnait hier, c’est que tu as changé quelque chose entre-temps.

Je ne sais pas si les seuls extraits que tu nous montres permettent d’identifier le problème : peut-être effaces-tu la variable à un moment ou un autre ?

Sur toute les actions qui ont été faites depuis hier, j’ai seulement ajouté une table dans ma BDD (Effectivement, je ne montre pas tout mon code, la est sans doute le pb :-° )

Bizarre bizarre !

Mais bon, visiblement c’est cette configuration-la qui pausait problème …

if ((isset($_SESSION["XXX"])) AND ($_SESSION['XXX'] == XXX)) 
    {
        include("XXX.php");                                      
    }
else
    {
                                              
    }

En supprimant la structure "IF", ca marche !? Comprend pas trop pourquoi … (D’autant plus que ce matin, aillant fait la même manip (de supprimer la structure "IF"), j’avais le problème dans les 2 cas ?!)

(PS et j’ai bien vérifié, mais le "IF" était "VRAI" )

+0 -0

Bonjour, ce n’est pas bizarre du tout. Tu check une variable en session, une session ça expire… Suffit que tu ne sois pas repassé par l’étape de connexion pour que ça saute. A mon avis tu as un petit problème de conception algorithmique, je t’invite à y réfléchir sur papier avant de mettre à jour ton code.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte