[INFO] sur l'utilisation des sessions de phpBB3 sur son site

Ce forum aborde toutes les questions qu'un codeur ou webmaster pourrait se poser, et n'ayant aucun rapport direct avec phpBB.
Tout ce qui peut concerner la récupération des sessions de phpBB sur votre site, doit se faire dans ce forum.

Modérateur: Equipe

Re: [INFO] sur l'utilisation des sessions de phpBB3 sur son site

Messagepar Dr DLP » 21 Juin 2009 à 23:44

Faudrait monter ce qui est prévu dans ton script au cas où la valeur true est donné à logout, on ne peut pas t'aider sinon.
Si tu penses que le simple fait de rajouter ?logout=true suffit à faire une déconnexion, signale le :)
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8411
Inscription: 05 Mar 2003 à 22:49
Localisation: Var ( 83 )

Re: [INFO] sur l'utilisation des sessions de phpBB3 sur son site

Messagepar Myzerykord » 21 Juin 2009 à 23:51

Bonsoir, merci de ton intérêt, mais ta réponse ne convient pas, je m'explique :
La déconnexion ne fonctionne pas parce qu'"accueil.html" n'intègre pas le script de déconnexion, donc le "?logout=true" ne fonctionneras jamais.
Je voudrais savoir comment faire pour que la session se déconnecte et redirige vers "accueil.html" en cliquant sur Deconnexion.
Merci, bonne soirée.
Myzerykord
Posteur néophyte
Posteur néophyte
 
Messages: 93
Inscription: 13 Oct 2007 à 14:14
Localisation: Auxerre, 89

Re: [INFO] sur l'utilisation des sessions de phpBB3 sur son site

Messagepar Dr DLP » 22 Juin 2009 à 09:39

Code: Tout sélectionner
$id     request_var('i''');
$mode    request_var('mode''');

if (
$mode == 'login' || $mode == 'logout' || $mode == 'confirm')
{
    
define('IN_LOGIN'true);
}

switch (
$mode)
{
    case 
'logout':
        if (
$user->data['user_id'] != ANONYMOUS && isset($_GET['sid']) && !is_array($_GET['sid']) && $_GET['sid'] === $user->session_id)
        {
            
$user->session_kill();
            
$user->session_begin();
            
$message $user->lang['LOGOUT_REDIRECT'];
        }
        else
        {
            
$message = ($user->data['user_id'] == ANONYMOUS) ? $user->lang['LOGOUT_REDIRECT'] : $user->lang['LOGOUT_FAILED'];
        }
        
meta_refresh(3append_sid("{$phpbb_root_path}index.$phpEx"));

        
$message $message '<br /><br />' sprintf($user->lang['RETURN_INDEX'], '<a href="' append_sid("{$phpbb_root_path}index.$phpEx") . '">''</a> ');
        
trigger_error($message);

    break;

en remplaçant "{$phpbb_root_path}index.$phpEx" par le lien vers ta page.
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8411
Inscription: 05 Mar 2003 à 22:49
Localisation: Var ( 83 )

Re: [INFO] sur l'utilisation des sessions de phpBB3 sur son site

Messagepar greensp » 22 Juin 2009 à 11:38

Dr DLP a écrit:
Code: Tout sélectionner
$requete = mysql_query('SELECT c.*, u.* FROM commentaires AS c 
LEFT JOIN phpbb_users AS u ON u.user_id = c.user_id
WHERE c.idnews='
 .$id_news. ' ORDER BY c.id LIMIT ' .$premierMessageAafficher.', '.$nombreDeMessagesParPage);  

Où il faut remplacer c.user_id par le nom de ta colonne qui identifie l'utilisateur dans la table commentaires.


J'ai adapté ta requête comme suit:

Code: Tout sélectionner
$requete = mysql_query('SELECT c.*, u.* FROM commentaires AS c 
LEFT JOIN phpbb_users AS u ON u.username = c.PseudoC
WHERE c.idnews='
 .$id_news. ' ORDER BY c.id LIMIT ' .$premierMessageAafficher.', '.$nombreDeMessagesParPage); 
while 
($donnees = mysql_fetch_array($requete))
{
echo '<div class="news_commentglob"><img class="news_comment" src="forum/download/file.php?avatar='.$donnees['user_avatar'].'" alt="Avatar" />
....
}


et... ça marche ! :D

Bien joué le coup de la jointure! Désormais finit les prises de têtes sur les changements d'extension d'avatar :)

Et là je dis Merci beaucoup el doctor DLP :wink:
greensp
Posteur néophyte
Posteur néophyte
 
Messages: 44
Inscription: 08 Sep 2008 à 16:39

Re: [INFO] sur l'utilisation des sessions de phpBB3 sur son site

Messagepar Myzerykord » 22 Juin 2009 à 11:50

Dr DLP a écrit:en remplaçant "{$phpbb_root_path}index.$phpEx" par le lien vers ta page.

Bonjour, du code intéressant mais je peux pas en faire grand chose ... j'utilise la version non templatée.

Pour t'aider dans mon ... aide, lol :
http://www.abysss.fr/Aphrodisia/links.txt (page protégée)
http://www.abysss.fr/Aphrodisia/login.txt (page de connexion)

Merci.
Myzerykord
Posteur néophyte
Posteur néophyte
 
Messages: 93
Inscription: 13 Oct 2007 à 14:14
Localisation: Auxerre, 89

Re: [INFO] sur l'utilisation des sessions de phpBB3 sur son site

Messagepar Dr DLP » 22 Juin 2009 à 12:14

Bien joué greensp, tu as compris le truc :)

@Myzerykord: je ne vois pas le rapport. Essaye déjà, et dis moi ce que tu ne comprends pas.
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8411
Inscription: 05 Mar 2003 à 22:49
Localisation: Var ( 83 )

Re: [INFO] sur l'utilisation des sessions de phpBB3 sur son site

Messagepar Myzerykord » 22 Juin 2009 à 12:18

Je ne vois pas ou mettre ce code, en quoi mettre cette partie de code me fera rediriger vers "accueil.html" en déconnexion en cliquant sur le bouton prévu à cet effet :|
Myzerykord
Posteur néophyte
Posteur néophyte
 
Messages: 93
Inscription: 13 Oct 2007 à 14:14
Localisation: Auxerre, 89

Re: [INFO] sur l'utilisation des sessions de phpBB3 sur son site

Messagepar Myzerykord » 23 Juin 2009 à 11:42

Bonjour, j'ai finalement abandonné l'idée de la redirection avec accueil.html, c'est plus simple pour tout le monde, merci quand même.

J'ai une autre requête. Je n'arrive pas à intégrer la fonction group_memberships à mes pages protégées :?

Dr DLP a écrit:La fonction group_memberships(a, b, true) renvoit TRUE si l'utilisateur ayant l'id B se trouve dans le groupe ayant l'id A.


Voici mon code, qui ne fonctionne pas ...
Code: Tout sélectionner

<?php
define
('IN_PHPBB'true);
$phpbb_root_path =  './forum/';
$phpEx substr(strrchr(__FILE__'.'), 1);
include(
$phpbb_root_path 'common.' $phpEx);
include(
$phpbb_root_path 'includes/functions_user.' $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup('');
if(
$user->data['user_id'] == ANONYMOUS)
{
header('Location: login.php');
}
if (
$user->data['user_id'] != ANONYMOUS)
{
   echo 
'Bienvenue ' $user->data['username'] . '<br />';
   echo 
'<a href="' append_sid('login.php?logout=true') . '"><img src="images/deconnexion.png" border="0" /></a>';
}
function 
group_memberships(2false);
?>


Pour info, je souhaite retirer l'accès aux pages au groupe "Utilisateurs enregistrés".
Merci d'avance, je sèche encore là :(
Myzerykord
Posteur néophyte
Posteur néophyte
 
Messages: 93
Inscription: 13 Oct 2007 à 14:14
Localisation: Auxerre, 89

Re: [INFO] sur l'utilisation des sessions de phpBB3 sur son site

Messagepar Dr DLP » 23 Juin 2009 à 14:00

Pour le logout je t'ai donné le code en intégralité.
Si ne serait ce que tenter de le mettre dans ton script est trop compliqué tu as raison d'abandonner.

Pour
Code: Tout sélectionner
function group_memberships(2, false); 

c'est très loin de la manière correcte de l'utiliser.
http://us3.php.net/manual/en/functions.user-defined.php
Dans ce cas l'utilisation est:
Code: Tout sélectionner
$result_func = group_memberships(a, b, true);
if(
$result_func)
{
}
 

où quoi que ce soit comme condition.

De plus dire "ça ne fonctionne pas" est l'équivalent "il ne va pas bien" pour un médecin, c'est inutile et une perte de temps.
Donne le problème, et l'erreur si tu en as une, nous t'aiderons avec plaisir.

A ton service si tu as des questions précises.
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8411
Inscription: 05 Mar 2003 à 22:49
Localisation: Var ( 83 )

Re: [INFO] sur l'utilisation des sessions de phpBB3 sur son site

Messagepar Myzerykord » 23 Juin 2009 à 14:50

J'en conviens qu'il ne vas pas bien, merci de ne prendre en compte que j'ai très peu l'habitude de faire du php et que je m'entraine, ce n'est pas simple quand on y connait vraiment pas grand chose. :?

Donc si je comprends bien selon le résultat renvoyée par la fonction, est exécuté le if ?
Qu'est ce qu'il m'est possible de mettre dans le if ?
Plus précisément je souhaite bloquer l'accès à ces pages à un seul groupe d'utilisateur, et tout le groupe, pas seulement un des utilisateurs. Et que le refus d'affichage de cette page s'exprime par la redirection vers une page spécifique.

Merci d'avance de m'aider parce que là, je n'ai aucune idée :|
Myzerykord
Posteur néophyte
Posteur néophyte
 
Messages: 93
Inscription: 13 Oct 2007 à 14:14
Localisation: Auxerre, 89

Re: [INFO] sur l'utilisation des sessions de phpBB3 sur son site

Messagepar Dr DLP » 23 Juin 2009 à 16:23

Ok, j'explique.
Avec:
Code: Tout sélectionner
$result_func = group_memberships(a, b, true);

le résultat de group_memberships(a, b, true) est transmis à $result_func.
Il vaudra soit TRUE si le membre B est dans le groupe A, FALSE le cas contraire.

A partir de là tu construire ta condition:
Code: Tout sélectionner
if($result_func == FALSE)
 

équivaut à
Code: Tout sélectionner
if(!$result_func)
 

et signifie "Si $result_func est faux".

Pour le cas qui nous concerne tu n'as plus qu'à mettre la redirection dans les accolades ce qui donne:
Code: Tout sélectionner
if(!$result_func)
{
header('Location: http://www.example.com/');
die();
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8411
Inscription: 05 Mar 2003 à 22:49
Localisation: Var ( 83 )

Re: [INFO] sur l'utilisation des sessions de phpBB3 sur son site

Messagepar Myzerykord » 23 Juin 2009 à 17:36

Merci infiniment.

Est-il possible de ne renseigner qu'un groupe d'utilisateurs ?
Ce qui donnerais donc :

Code: Tout sélectionner
$result_func group_memberships(atrue);
if(!
$result_func)
{
header('Location: http://www.example.com/');
die();


Merci.
Myzerykord
Posteur néophyte
Posteur néophyte
 
Messages: 93
Inscription: 13 Oct 2007 à 14:14
Localisation: Auxerre, 89

Re: [INFO] sur l'utilisation des sessions de phpBB3 sur son site

Messagepar Dr DLP » 23 Juin 2009 à 17:55

Remplace B par $user->data['user_id'] et A par l'id de ton groupe.
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8411
Inscription: 05 Mar 2003 à 22:49
Localisation: Var ( 83 )

Re: [INFO] sur l'utilisation des sessions de phpBB3 sur son site

Messagepar Myzerykord » 23 Juin 2009 à 18:30

Merci infiniment, ça marche enfin !! :P

Voici donc le code de protection de mes pages :

Code: Tout sélectionner
<?php
define
('IN_PHPBB', true);
$phpbb_root_path =  './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include(
$phpbb_root_path . 'common.' . $phpEx);
include(
$phpbb_root_path . 'includes/functions_user.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup('');
if(
$user->data['user_id'] == ANONYMOUS)
{
header('Location: login.php');
}
$result_func = group_memberships(2, $user->data['user_id'], true);
if(
$result_func == true)
{
header('Location: recrutement.html');
die();
}
if ($user->data['user_id'] != ANONYMOUS)
{
   echo 'Bienvenue ' . $user->data['username'] . '<br />';
   echo '<a href="' . append_sid('login.php?logout=true') . '"><img src="images/deconnexion.png" border="0" /></a>';
}
?>
Myzerykord
Posteur néophyte
Posteur néophyte
 
Messages: 93
Inscription: 13 Oct 2007 à 14:14
Localisation: Auxerre, 89

Re: [INFO] sur l'utilisation des sessions de phpBB3 sur son site

Messagepar Dr DLP » 23 Juin 2009 à 18:43

Bonne nouvelle, mais es tu sûr du 2 pour le groupe?
C'est l'id des utilisateurs inscrits habituellement.
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8411
Inscription: 05 Mar 2003 à 22:49
Localisation: Var ( 83 )

PrécédenteSuivante

Retourner vers Coding, Webmastering et Sécurité informatique

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot] et 1 invité

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