Affichage des résultats 1 à 14 sur 14

Discussion: Récupérer les informations utilisateur depuis une page externe au forum

  1. #1
    Date d'inscription
    juillet 2010
    Messages
    8
    Version de vBulletin
    3.8
    Hébergeur
    OVH
    Pouvoir de réputation
    0

    [Résolu] Récupérer les informations utilisateur depuis une page externe au forum

    Bonjour,

    Je suis actuellement en train de travailler sur un système de classements de résultats de benchs pour le forum OverClocking-PC.fr, et je me heurte à un petit soucis.

    Pour des raisons pratiques, j'aurais besoin de récupérer quelques informations :
    - Savoir si un membre est connecté au forum
    - Connaitre son pseudo
    - Connaitre son e-mail

    Ne disposant pas de licence vBulletin (le forum ne m'appartient pas), je n'ai pas pu regarder en local comment m'y prendre. C'est pourquoi je m'adresse à vous.

    Je vous remercie d'avance pour votre aide.

    Cordialement, NEO III
    Dernière modification par NEO III ; 05/07/2010 à 11h44. Motif: Ajout du tag [Résolu]
    Webmaster/Modérateur du site OverClocking-PC.fr

  2. #2
    Date d'inscription
    septembre 2002
    Localisation
    France
    Âge
    34
    Messages
    11 287
    Version de vBulletin
    5.0
    Hébergeur
    Serveur dédié OVH
    Billets dans le blog
    13
    Pouvoir de réputation
    120
    Dans le code PHP, en faisant un appel au fichier global.js à la racine du forum :

    Code PHP:
    require_once('./global.php'); 
    Tu as accès à tout de base.

    • Vérifier si un utilisateur n'est pas un invité:
      • $show['member'] = true si c'est un utilisateur identifié
      • $show['guest'] = true si c'est un invité


    Pour utiliser les données des utilisateurs, il faut utiliser le code suivant (après l'appel à global.js) :

    Code PHP:
    // Spécification de l'identifiant utilisateur pour s'en servir dans le code
    // Equivaut à un $_REQUEST['userid'] ou $_GET['userid']
    // 'r' = REQUEST, g pour GET et p pour POST
    // 'userid = identifiant de la variable qu'on va utiliser
    // TYPE_UINT = integer positif (U = unsigned, INT = integer)
    $vbulletin->input->clean_gpc('r''userid'TYPE_UINT);

    // Sélection des données de l'utilisateur demandé
    // Le code précédent permet de définir $vbulletin->GPC['userid']
    // et de le remplir avec la valeur correspondante

    $userinfo verify_id('user'$vbulletin->GPC['userid'], 11); 
    Avec ce code, l'identifiant est accessible via $userinfo['username'] et son adresse email via $userinfo['email'].

    Et si un jour une mise à jour vers vB4 est envisagé, sache que ce code ne change pas

    En résumé :

    Code PHP:
    require_once('./global.php');

    $vbulletin->input->clean_gpc('r''userid'TYPE_UINT);

    $userinfo verify_id('user'$vbulletin->GPC['userid'], 11);

    echo 
    'Identifiant : ' $userinfo['username'] . '<br />Adresse email : ' $userinfo['email']; 
    PS : tu peux utiliser 'musername' au lieu de 'username' si une couleur / style est appliqué sur le pseudo et que tu souhaites l'afficher.
    Dernière modification par Pitchoune ; 02/07/2010 à 10h09. Motif: mauvaise extension dans le dernier code pour global.php
    vBulletin Quality Assurance
    Développeur en chef de Project Tools 2.1+ pour vB 4 et 2.0 pour vB 3
    Restera très discret sur toutes les futures fonctionnalités de vBulletin ainsi que de vBulletin 5 Connect jusqu'à leur sortie publique ^^

    Tout MP d'aide -> Supprimé

  3. #3
    Date d'inscription
    juillet 2010
    Messages
    8
    Version de vBulletin
    3.8
    Hébergeur
    OVH
    Pouvoir de réputation
    0
    Merci pour votre aide, je vais tester ça
    Webmaster/Modérateur du site OverClocking-PC.fr

  4. #4
    Date d'inscription
    juillet 2010
    Messages
    8
    Version de vBulletin
    3.8
    Hébergeur
    OVH
    Pouvoir de réputation
    0
    Après essai, je me heure à une erreur.

    Les pages que je code sont dans le dossier /bench et le forum dans /forums. J'ai donc utilisé ce code :

    Code PHP:
    // Setting include path to /forums

    ini_set('include_path''../forums');

    // Connecting to vBulletin

    require_once('../forums/global.php'); 
    Mais j'obtiens toujours cette erreur :
    Code:
    Warning: require_once(/homez.51/overcloc/www/bench/includes/init.php) [function.require-once]: failed to open stream: No such file or directory in /homez.51/overcloc/www/forums/global.php on line 20
    
    Fatal error: require_once() [function.require]: Failed opening required '/homez.51/overcloc/www/bench/includes/init.php' (include_path='../forums') in /homez.51/overcloc/www/forums/global.php on line 20
    Une idée ?
    Webmaster/Modérateur du site OverClocking-PC.fr

  5. #5
    Date d'inscription
    mars 2003
    Localisation
    Sur mon coussin
    Messages
    5 536
    Version de vBulletin
    4.2
    Hébergeur
    localhost
    Pouvoir de réputation
    86
    Remplaces les deux points ( ../xxx ) par un seul point ( ./xxx ) ; ça marche souvent mieux car ça fait remonter directement à la racine du http, c'est-à-dire /www/
    Miaouuu... ne me caressez pas à rebrousse-poils, ça fait de l'électricité !
    Aucune demande d'aide par mp ne sera prise en compte !

  6. #6
    Date d'inscription
    juillet 2010
    Messages
    8
    Version de vBulletin
    3.8
    Hébergeur
    OVH
    Pouvoir de réputation
    0
    Pour la racine, ce n'est pas "./" mais "/". "./" indique le répertoire courant

    Quoi qu'il en soit, j'ai également essayé "./" et "/", et toujours le même message d'erreur
    Webmaster/Modérateur du site OverClocking-PC.fr

  7. #7
    Date d'inscription
    mars 2003
    Localisation
    Sur mon coussin
    Messages
    5 536
    Version de vBulletin
    4.2
    Hébergeur
    localhost
    Pouvoir de réputation
    86
    ... alors essaie avec une url absolue : http://ton-site.com/forum/global.php
    Miaouuu... ne me caressez pas à rebrousse-poils, ça fait de l'électricité !
    Aucune demande d'aide par mp ne sera prise en compte !

  8. #8
    Date d'inscription
    mars 2003
    Localisation
    Sur mon coussin
    Messages
    5 536
    Version de vBulletin
    4.2
    Hébergeur
    localhost
    Pouvoir de réputation
    86
    PS: je doute que ça fonctionne, en fait... car si ça mène bien au global.php, c'est la suite qui cause erreur : le chemin vers le includes/init.php
    Miaouuu... ne me caressez pas à rebrousse-poils, ça fait de l'électricité !
    Aucune demande d'aide par mp ne sera prise en compte !

  9. #9
    Date d'inscription
    juillet 2010
    Messages
    8
    Version de vBulletin
    3.8
    Hébergeur
    OVH
    Pouvoir de réputation
    0
    J'ai réussi à résoudre le problème avec ce code :

    Code PHP:
    // Setting path to /forums

    chdir("../forums");

    // Connecting to vBulletin

    require_once('../forums/global.php'); 
    Maintenant j'arrive sur une erreur de vBulletin :
    Code:
    Utilisateur non spécifié(e). Si vous avez suivi un lien valide, veuillez en informer le webmaster.
    De plus, c'est l'interface du forum qui s'affiche et non la page que j'ai codée.

    Dans une page test.php5 j'ai fait l'include vers une page vbc.php5 que voici :

    Code PHP:
    <?php
        
    /**
         * 
         * BenchTab 3.1.000 - Copyright 2009-2010, NEO III
         * --------
         * File : vbc.php5
         * Version : 3.1.000
         *
         * --
         * This file is under GNU GPL licence.
         *
         */

    // Setting path to /forums

    chdir("../forums");

    // Connecting to vBulletin

    require_once('../forums/global.php');

    // Creating Array

    $vBinfo = Array();

    // Sending parameters to vBulletin

    $vbulletin->input->clean_gpc('r''userid'TYPE_UINT);

    $userinfo verify_id('user'$vbulletin->GPC['userid'], 11);

    // Registering info in Array

    $vBinfo['connected'] = $show['member']?1:0;

    if(
    $show['member']){
        
    $vBinfo['membername'] = $userinfo['username'];
        
    $vBinfo['membermail'] = $userinfo['email'];
    }

    // setting path to /bench

    chdir((dirname(__FILE__)));

    @
    mysql_close();


    ?>

    <!--  End Of File -->
    Et dans test.php5 je veux afficher mes résultats (pour tester) ainsi :

    Code PHP:
    echo $vBinfo['connected']?"Id : ".$vBinfo['membername'].", ".$vBinfo['membermail']:"non connecté"
    Pourquoi est-ce donc l'interface du forum qui s'affiche et non celle que j'ai codée ?
    Webmaster/Modérateur du site OverClocking-PC.fr

  10. #10
    Date d'inscription
    septembre 2002
    Localisation
    France
    Âge
    34
    Messages
    11 287
    Version de vBulletin
    5.0
    Hébergeur
    Serveur dédié OVH
    Billets dans le blog
    13
    Pouvoir de réputation
    120
    Tu as essayé une adresse URL tel que test.php5?userid=x (remplace par un chiffre) ?
    vBulletin Quality Assurance
    Développeur en chef de Project Tools 2.1+ pour vB 4 et 2.0 pour vB 3
    Restera très discret sur toutes les futures fonctionnalités de vBulletin ainsi que de vBulletin 5 Connect jusqu'à leur sortie publique ^^

    Tout MP d'aide -> Supprimé

  11. #11
    Date d'inscription
    juillet 2010
    Messages
    8
    Version de vBulletin
    3.8
    Hébergeur
    OVH
    Pouvoir de réputation
    0
    Avec cette url, cela fonctionne. J'ai bien les infos du membre donc l'id est spécifié.

    Dans ce cas, comment faire pour obtenir l'id du visiteur si il est connecté ? Et pour éviter ce message d'erreur de vBulletin si personne n'est connecté ?
    Dernière modification par NEO III ; 02/07/2010 à 23h13.
    Webmaster/Modérateur du site OverClocking-PC.fr

  12. #12
    Date d'inscription
    juillet 2010
    Messages
    8
    Version de vBulletin
    3.8
    Hébergeur
    OVH
    Pouvoir de réputation
    0
    Webmaster/Modérateur du site OverClocking-PC.fr

  13. #13
    Date d'inscription
    septembre 2002
    Localisation
    France
    Âge
    34
    Messages
    11 287
    Version de vBulletin
    5.0
    Hébergeur
    Serveur dédié OVH
    Billets dans le blog
    13
    Pouvoir de réputation
    120
    Si l'utilisateur est connecté, essaye d'utiliser $vbulletin->userinfo['userid'] au lieu de $userid.
    vBulletin Quality Assurance
    Développeur en chef de Project Tools 2.1+ pour vB 4 et 2.0 pour vB 3
    Restera très discret sur toutes les futures fonctionnalités de vBulletin ainsi que de vBulletin 5 Connect jusqu'à leur sortie publique ^^

    Tout MP d'aide -> Supprimé

  14. #14
    Date d'inscription
    juillet 2010
    Messages
    8
    Version de vBulletin
    3.8
    Hébergeur
    OVH
    Pouvoir de réputation
    0
    Toujours pareil.

    Si je ne suis pas connecté, j'ai bien la page que j'ai codée pour un utilisateur non connecté. En revanche si je suis connecté, j'ai la page d'erreur de vBulletin.

    Voici mon code, peut-être ai-je mis $vbulletin->userinfo['userid'] au mauvais endroit

    Code PHP:
    <?php
        
    /**
         * 
         * BenchTab 3.1.000 - Copyright 2009-2010, NEO III
         * --------
         * File : vbc.php5
         * Version : 3.1.000
         *
         * --
         * This file is under GNU GPL licence.
         *
         */


    // Setting path to /forums

    chdir("../forums");

    // Connecting to vBulletin

    require_once('../forums/global.php');

    // Creating Array

    $vBinfo = Array();

    // Registering info in Array

    $vBinfo['connected'] = $show['member']?1:0;

    if(
    $show['member']){
        
    // Sending parameters to vBulletin

        
    $vbulletin->input->clean_gpc('r'$vbulletin->userinfo['userid'], TYPE_UINT);

        
    $userinfo verify_id('user'$vbulletin->GPC[$vbulletin->userinfo['userid']], 11);

        
    $vBinfo['membername'] = $userinfo['username'];
        
    $vBinfo['membermail'] = $userinfo['email'];
    }

    // setting path to /bench

    chdir((dirname(__FILE__)));

    @
    mysql_close();

    // End Of File

    ?>
    EDIT :

    J'ai réussi avec ce code :

    Code PHP:
    <?php
        
    /**
         * 
         * BenchTab 3.1.000 - Copyright 2009-2010, NEO III
         * --------
         * File : vbc.php5
         * Version : 3.1.000
         *
         * --
         * This file is under GNU GPL licence.
         *
         */

    // Setting path to /forums

    chdir("../forums");

    // Connecting to vBulletin

    require_once('../forums/global.php');

    // Creating Array

    $vBinfo = Array();

    // Registering info in Array

    $vBinfo['connected'] = $show['member']?1:0;

    if(
    $show['member']){
        
    // Sending parameters to vBulletin

        
    $userinfo verify_id('user'$vbulletin->userinfo['userid'], 11);

        
    $vBinfo['membername'] = $userinfo['username'];
        
    $vBinfo['membermail'] = $userinfo['email'];
    }

    // setting path to /bench

    chdir((dirname(__FILE__)));

    @
    mysql_close();

    // End Of File

    ?>
    Encore merci à tous pour votre aide
    Dernière modification par NEO III ; 05/07/2010 à 11h43.
    Webmaster/Modérateur du site OverClocking-PC.fr

Informations de la discussion

Utilisateur(s) sur cette discussion

Il y a actuellement 1 utilisateur(s) naviguant sur cette discussion. (0 utilisateur(s) et 1 invité(s))

Les tags pour cette discussion

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •