[Doc] Utiliser les sessions de phpBB à travers son site

Découvrez ici une liste de documents concernant phpBB: son installation, sa mise à jour et enfin son utilisation.
En bref, apprenez ici à vous servir de phpBB2!

Modérateur: Equipe

[Doc] Utiliser les sessions de phpBB à travers son site

Messagede Poupoune le 24 Avr 2004 à 22:52

» Utiliser les sessions de phpBB à travers son site
Intro (but du tutorial)

    Image Info:
    - Emprunter le système de sessions de phpBB
    - Inclure common.php
    - Vérifier les authorisations [ici, on vérifiera juste le statut connecté/deconnecté (facultatif)]



» Les sessions

    » Le code suivant doit être introduit dans chaque page PHP dans lesquelles les sessions de phpBB auront effet :
    Code: Tout sélectionner
    define('IN_PHPBB', true);
    $phpbb_root_path = './';
    include($phpbb_root_path . 'extension.inc');
    include($phpbb_root_path . 'common.'.$phpEx);

    //
    // Start session management
    //
    $userdata = session_pagestart($user_ip, PAGE_INDEX);
    init_userprefs($userdata);
    //
    // End session management
    //

    » Note: la valeur de $phpbb_root_path peut varier (si besoin est), comme peut l'être celle de PAGE_INDEX. $phpbb_root_path doit correspondre au chemin relatif au dossier qui contient phpBB. Par exemple si vous avez cette arborescence :
    /public_html/
    ../www
    ...../index.php
    ...../news.php
    ...../downloads.php
    ../phpBB2/
    ...../index.php
    ...../faq.php
    ...../memberlist.php

    $phpbb_root_path pour le dossier /www doit être :
    Code: Tout sélectionner
    $phpbb_root_path = '../phpBB2/';

    PAGE_INDEX est utilisée dans le Qui est en ligne? qui montre où se trouve le membre sur le forum. Sa valeur peut être n'importe laquelle des valeurs définies dans /includes/constants.php sous :
    Code: Tout sélectionner
    // Page numbers for session handling

    *Rajout personnel: ce code doit être introduit en début de chaque page afin d'éviter les erreurs du type Headers already sent by ../..

» Inclure common.php

    » Cela a été fait par le code ci-dessus. Cela permet d'utiliser le système de template, le système d'autorisation (utilisateur/modo/admin), le système de connexion et de langue de phpBB.
    » Note: si vous faites cette manipulation (qui est requise), et que votre forum a une défaillance, le reste de votre site aussi.

» Vérifier les autorisations

    » En théorie, parce que le common.php est inclus, nous pourrions utiliser le systme d'authentification de phpBB. Mais ce serait beaucoup de boulot. Donc,par souci de simplicité, nous allons voir comment vérifier si l'utilisateur est connecté ou non , et qu'en faire par la suite. Le code pour vérifier le statut connecté/déconnecté :
    Code: Tout sélectionner
    if( $userdata['session_logged_in'] )
       {
          [insérer ici votre code HTML ou PHP]
       }
    else
           {
                   echo('Connectez-vous');
           }

    NOTE :
      » Vous pouvez changer le message d'erreur par ce que vous voulez, même utiliser les variables $lang .
      » Vous pouvez également utiliser la fonction message_die() pour l'erreur.

» Autres remarques:

    » Même si ce n'est pas obligatoire, il est recommandé d'utiliser le append_sid() à tous les liens de vos pages. Il est obligatoire d'utiliser le append_sid() quand vous mettez un lien de votre site vers phpBB. *
    » Le code html à mettre dans vos pages pour vous connecter:
    Code: Tout sélectionner
    <form action="login.php" method="post"><input type="text" name="username"><br /><input type="password" name="password"><br />
    <input type="submit" value="login" name="login">
    </form>

    *: la fonction append_sid() est utilisé pour garder la session à travers les liens pour les utilisateurs dont les cookies ne marchent pas. Ainsi à la place d'instaurer un cookie, append_sid() ajoute l'ID de la session comme une variables GET das l'url. Sans ça, phpBB vous déconnecte. Exemple: si vous cliquez sur un lien qui n'utilise pas la fonction append_sid() vous vous retrouverez deconnecté.
    Pour éviter cela, assurez vous de faire :
    Code: Tout sélectionner
    'U_XYZ' => append_sid("xyz.$phpEx"),

    au lieu de :
    Code: Tout sélectionner
    'U_XYZ' => "xyz.$phpEx",



Source ==> http://www.phpbb.com/kb/article.php?article_id=143
Informations complémentaires ==> http://forums.phpbb-fr.com/viewtopic_62291.html

-Edité par ErnadoO-
Motif: Mis à jour le 22-08-2006
Poupoune
Grand-maître des floodeurs
Grand-maître des floodeurs
 
Messages: 3970
Inscription: 11 Juil 2003 à 14:22

Retourner vers [phpBB 2.0.x] Forum de documentation

Qui est en ligne

Utilisateurs parcourant ce forum: degun13, frenchies et 1 invité

Liens : phpBB.biz • phpBBHacks.com • phpBB-Seo.com • EzCom-fr.com • phpBB-Services.com • phpBB3 Styles • phpBB podpora • Net Avenir • PromoBenef • Ticket Gagnant •