IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Sessions PHPBB - Erreur fonction append_sid() [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de mangasource
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 122
    Par défaut Sessions PHPBB - Erreur fonction append_sid()
    Bonjour,

    Je vous présente mon problème.

    Grâce à PHPBB, j'ai créer un script me permettant de me connecter directement a partir de mon site. ( PHPBB mettant a disposition les documents pour réaliser se script : http://forums.phpbb-fr.com/documenta...jet154874.html ).

    Sur chacune des pages de mon site web j'inclus deux fichiers.

    Avant le doctype j'inclus espace_membre_forum.php :

    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
    34
    35
        <?php
        define('IN_PHPBB', true);
        $phpbb_root_path = './forum/';
        $phpEx = substr(strrchr(__FILE__, '.'), 1);
        include($phpbb_root_path . 'common.' . $phpEx);
        $user->session_begin();
        $auth->acl($user->data);
        $user->setup();
        if (isset($_GET['logout']))
        {
           $user->session_kill();
           $user->session_begin();
        }
        if (isset($_POST['login']))
        {
           $username = request_var('username', '', true);
           $password    = request_var('password', '', true);
           $autologin   = (!empty($_POST['autologin'])) ? true : false;
           $viewonline = (!empty($_POST['viewonline'])) ? 0 : 1;
           $admin = 0;
           $result = $auth->login($username, $password, $autologin, $viewonline, $admin);
           if ($result['status'] != LOGIN_SUCCESS)
           {
              $err = $user->lang[$result['error_msg']];
              if ($result['error_msg'] == 'LOGIN_ERROR_USERNAME' || $result['error_msg'] == 'LOGIN_ERROR_PASSWORD')
              {
                 $err = (!$config['board_contact']) ? sprintf($user->lang[$result['error_msg']], '', '') : sprintf($user->lang[$result['error_msg']], '<a href="mailto:' . htmlspecialchars($config['board_contact']) . '">', '</a>');
              }
           }
           else
           {
              $auth->acl($user->data);
           }
        }
        ?>
    Puis un fichier header.php qui mets le formulaire de connexion par dessus la bannière :

    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
        <div id="header">
        <div id="header_connexion">
        <?php
        if ($user->data['user_id'] != ANONYMOUS)
        {
           echo 'Bienvenue ' . $user->data['username'] . '<br />';
           echo '-----<br /><a href="' . append_sid('http://fanmetalalchemist.free.fr/index.php?logout=true') . '">Déconnexion</a>';
        }
        else
        {
        if($err)
           {
              echo "<h5>$err</h5>";
           }
        ?>
        <form method="post">   
        Pseudo:<br />
        <input type="text" tabindex="1" name="username" size="25" /><br />
        Mot de passe:<br />
        <input type="password" tabindex="2" name="password" size="25" /><br />
        <input type="submit" name="login" tabindex="5" value="Connexion" />
        </form>
        <?php
        }
        ?>
        </div>
        </div>
    La fonctipn append_sid, est dans le fichier functions.php.
    Ce fichier est inclus dans common.php, lui même inclus dans header.php, qui, est lui même inclus dans chacune de mes pages ( Comme dit ci-dessus ).

    Voici un exemple d'une page de mon site web :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        <?php include("./includes/espace_membre_forum.php"); ?>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <?php include("./includes/head.php"); ?>
        <body>
        <?php include("./includes/header.php"); ?>
        <?php include("./includes/menu.php"); ?>
        <div id="corps">
        Article bla bla bla
        </div>
        <?php include("./includes/footer.php"); ?>
        </body>
        </html>
    Problème :
    Lorsque je suis connecté, et que je change de page ( Ex: de index.php à staff.php, situés tous deux au même niveau ), ce message d'erreur apparait :

    Fatal error: Call to undefined function append_sid() in /mnt/132/sdb/6/e/fanmetalalchemist/includes/header.php on line 7
    Et cela même si je ne suis pas connecté.

    Auriez-vous une réponse?

    Merci.
    > Mes groupes :
    Amateurs de mangas/animes | Joueurs/Joueuses du TCG Magic : The Gathering | Les SIMPSONS / FUTURAMA
    > Vous avez la réponse à votre question ? Mettez votre sujet en Résolu

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Je ne connais absolument pas PhpBB, je me tiens au message d'erreur, et tes explications.

    L'erreur a lieu à la ligne 7 du header.php, et tu dis que cette fonction append_sid() est incluse (indirectement) dans le header.

    Donc question : Est-ce que ça se fait avant la ligne 7 ?
    Théoriquement non selon tes explication, donc si ça se fait après, c'est normal qu'il y a erreur.
    A vérifier.

  3. #3
    Membre chevronné Avatar de mangasource
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 122
    Par défaut
    Non, elle est inclus en tout début de page, avant le doctype.
    Donc non.
    > Mes groupes :
    Amateurs de mangas/animes | Joueurs/Joueuses du TCG Magic : The Gathering | Les SIMPSONS / FUTURAMA
    > Vous avez la réponse à votre question ? Mettez votre sujet en Résolu

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Non, elle est inclus en tout début de page, avant le doctype.
    Donc non.
    Disons que le Doctype importe peu, voir complètement, ce n'est pas le problème.

    Puis tu disais :
    La fonctipn append_sid, est dans le fichier functions.php.
    Ce fichier est inclus dans common.php, lui même inclus dans header.php, qui, est lui même inclus dans chacune de mes pages ( Comme dit ci-dessus ).
    Donc comme le header.php est inclus après le doctype d'après le code, du coup tu tes explications sont un peu contradictoires.
    Mais peu importe en faite.
    Ceci dit, je ne vois pas d'include de common.php dans le header.php ?


    L'erreur à lieu à la ligne 7 dans le header.php, et à ce moment cette fonction append_sid() est inconnue, c'est ce que dis le message d'erreur.
    Par conséquent, cette fonction n'est pas incluse (le fichier qui la contient), il n'y pas de mystère à mon sens.

    A part te dire de revoir un peu ces inclusions en cascades, et qui sait, peut être en sortir un (le common.php peut être) pour le mettre directement dans le header.php et avant cette ligne 7, je ne vois pas autre chose, et ça peu être une solution.
    Ou essayer, ne serait ce que pour voir.


    Sinon, as tu prospecter du coté de PhpBB, c'est eux qui à mon sens pourraient t'aider la dessus, non ?

  5. #5
    Membre chevronné Avatar de mangasource
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 122
    Par défaut
    Il n'est pas inclus dans header.php mais dans le fichier inclus avant le doctype, par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
    include($phpbb_root_path . 'common.' . $phpEx);
    Et peut importe ce que ja fais cela ne marche pas. Pourtant la fonction est bien inclue. Normalement en tout ca, après mainte vérification, je ne vois pas pourquoi elle ne le serait pas.

    Oui j'ai demandé aide, mais pas plus.
    > Mes groupes :
    Amateurs de mangas/animes | Joueurs/Joueuses du TCG Magic : The Gathering | Les SIMPSONS / FUTURAMA
    > Vous avez la réponse à votre question ? Mettez votre sujet en Résolu

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Et peut importe ce que ja fais cela ne marche pas. Pourtant la fonction est bien inclue. Normalement en tout ca, après mainte vérification, je ne vois pas pourquoi elle ne le serait pas.
    Elle n'est pas incluse, même si tu constate que le include y est, sinon il n'y aurait pas cette erreur.

    Peut être que le include du common est effectué selon une condition, ou alors sur celui du functions.php ?
    Va savoir.
    D'ailleurs, tu ne dis rien sur le include du functions.php, pourtant et d'après tes explications, c'est dans celui ci que se trouve cette fonction.
    Faudrait repérer le code de son include(), ça peu mettre sur la piste.

    As tu regardé le code dans ce common.php ?
    Il y a peut être des truc particuliers, non ?
    As tu essayé d'initialiser une variable dedans, et l'appeler dans ta page pour vérifier que ce common.php est bien inclus ? (il serait bon d'en être certain)

    D'ailleurs, en procédant ainsi, il devrait avoir moyen de pister les choses, en gros, qu'est ce qui est inclus ou pas.
    En somme, faut d'abord comprendre le pourquoi avant de trouver une solution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/06/2006, 14h54
  2. [DOM XML] Erreur fonction load() d'un objet dom??
    Par ribrok dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 04/10/2005, 11h43
  3. [Sessions] Message erreur PHP création de session
    Par Ylias dans le forum Langage
    Réponses: 2
    Dernier message: 29/09/2005, 11h11
  4. méssage d'erreur fonction d'agrégat
    Par developpeur_mehdi dans le forum Langage SQL
    Réponses: 4
    Dernier message: 10/03/2004, 12h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo