Intro (but du tutorial)
- 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
//- Code: Tout sélectionner
$phpbb_root_path = '../phpBB2/';- Code: Tout sélectionner
// Page numbers for session handling
» 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 :
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 :
*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. *
- 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>- Code: Tout sélectionner
'U_XYZ' => append_sid("xyz.$phpEx"),- Code: Tout sélectionner
'U_XYZ' => "xyz.$phpEx",
» Le code html à mettre dans vos pages pour vous connecter:
*: 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 :
au lieu de :
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

