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

IRC / mIRC Discussion :

[EggDrop] Accéder à un base de donnée MySQL


Sujet :

IRC / mIRC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut [EggDrop] Accéder à un base de donnée MySQL
    Salut à tous !

    J'ai un projet que je n'arrive pas à mettre en place.

    J'ai un serveur Unrealircd et un eggdrop sur un serveur.
    Sur un autre, j'ai un forum phpbb.

    Sur mon serveur irc, j'ai bloqué l'accès aux utlisateurs non enregistrés aupres de Anope.
    J'ai désactivé cette fonction sur un chan. Mon eeggdrop se trouve sur ce channel.

    De l'autre coté, sur mon forum, j'ai créé une page php qui liste tous les users de mon forum.

    Je voudrais que mon Eggdrop, lors d'un join, liste les utilisateurs de mon forum (grace à la page php créée), qu'il compare avec celle d'Anope et que si l'utilisateur pénétrant sur le chan n'est pas présent dans les membres du forum, soit kicker et supprimer du fichier user de Anope.

    Je remercie toute personne qui voudront bien me donner un coup de pouce

    Merci d'avance

  2. #2
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Coucou,

    Ton eggdrop est programmé en quel langage ?

    Merci

    Fred

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    Salut et merci pour ta reponse !

    Il est sur un shell donc je pense que c'est du C.

    Ca reste une bonne question !

    Je n'ai rien changé dessus et le programme avec le meme langage que l'on peut trouvé sur les differents sites.


    /Edit : En attendant, j'ai un peu avancé avec mon projet.
    J'ai créé la page php qui contient la liste des utilisateurs de mon forum.
    De l'autre coté (niveau eggdrop), il faudrait qu'il puis lire cette liste, qu'il retourne une valeur 1 (si le membre est present dans la page php - donc membres du forum) ou la valeur 2. Cette valeur aura pour action de supprimer le nick du fichier nick.db de Anope et de kicker le user du canal IRC.

    Voilà pour mon projet.
    Le probleme est maintenant que je n'arrive pas à le mettre en place ne connaissant pas trop le langage.

  4. #4
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Moi j'aurai dirrectement tapé dans le code de l'eggdrop, mais peut-être ne l'as-tu pas ?

    Il "suffirait" d'effectuer une connextion à ta base de donnée, de récupérer la liste des utilisateurs par une requete simple et de vérifier que le nick qui a rejoint y est présent.

    Cordialement

    Fred

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    C'est tout à fait ce que j'essaie de faire.

    J'ai un eggdrop. C'est avec lui que je voudrais faire cette verification.

    De coté de mon forum, j'ai créé une page php qui liste tous les users du groupe que je veux autoriser.
    Pour facilité les choses, j'ai viré la session d'authentification.

    L'eggdrop n'aura alors qu'à aller sur cette page, et faire ce que l'on dit de faire dans le script.tcl.

    Je pense que le mieux est :
    • On attribue à la valeur 1 >>>> Supprimer le user du fichier user de Anope (nick.db) et kicker le user.
    • On attribue à la valeur 2 >>>> Ne rien faire.
    • Que, lors d'un join, l'Eggdrop liste tous les membres via la page php créée. Si le user est present alors on se reporte à la valeur 2 précédemment définie, sinon on actionne la valeur 2.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    bind join - * join_tous
    proc join_tous {nick host hand chan} {
    global botnick verifie
      if {$chan != "*"} {
    package require http; 
    set thepage [http::data [set token [http::geturl "www.example.com"]]];
     http::cleanup $token;
    Merci de votre aide, c'est sympa

  6. #6
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Je dois t'avouer que les eggdrop ne sont pas ma grande spécialité, et que je n'ai que rarement touché à leur langage de scripts... J'espere que quelqu'un pourra t'aider mieux que moi

    Bon courage

    Fred

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Par défaut
    J'ai un peu avancé en prenant une toute autre technique.
    J'utilise, comme modele, bb.tcl pour me connecter à la bse de données de mon forum.

    Voici donc le script que j'ai modifié selon mon projet :
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    #--> Prefix du Forum
    set bb(prefix) "xxx_"
    
    #--> Host de la base mySQL
    set bb(myhost) "xxx.xxx.xxx"
    
    #--> Login de la base mySQL
    set bb(mylogin) "xxxxxx"
    
    #--> Mot de passe de la base mySQL
    set bb(mypass) "xxxxxx"
    
    #--> Nom de la base mySQL
    set bb(mybase) "xxxxxxxx"
    
    #--> Url du forum
    set bb(url) "http://www.xxxxxx.com"
    
    
    #######################################
    
    #############
    # Paquetage #
    #############
    
    if {[catch {package require mysqltcl}]} { 
    	putlog "Paquetage mysqltcl introuvable." 
    	set bb(actif) "0"
    }
    
    #############
    # Variables #
    #############
    
    set bb(actif) "1"
    
    ################
    # Verification #
    ################
    
    proc bb:verif {} { 
    	global bb
    	if {$bb(actif)=="1"} {
    		return ok
    	} else { putlog "Paquetage mysqltcl introuvable."; return 0 }
    }
    
    
    ###################
    # Connexion mySQL #
    ###################
    
    proc bb:connect {} {
    	global bb
    	set bb(connect) [mysqlconnect -host $bb(myhost) -user $bb(mylogin) -password $bb(mypass)]
    	mysqluse $bb(connect) $bb(mybase)
    }
    
    #####################
    # Deconnexion mySQL #
    #####################
    
    proc bb:deconnect {} {
    	global bb
    	mysqlclose $bb(connect); unset bb(connect)	
    }
    
    ##################
    # Initialisation #
    ##################
    bind join - * join_tous
    proc join_tous {nick host hand chan} {
    global  bb
      if {$chan != "*"} {
         if {$bb(actif)=="1"} {
             bb:connect     
             set bb(query) [mysqlquery $bb(connect) "SELECT * FROM $bb(prefix)users u JOIN $bb(prefix)user_group ug ON u.user_id = ug.user_id WHERE ug.group_id = 40 AND u.username=$nick"]
              mysqlendquery $bb(query)
    		  if {[mysqlresult $bb(connect) rows] == 0} {putserv "kick $nick "}
          
    	   }
        }
             
    
            bb:deconnect
    }
    Maintenant, j'ai l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tcl error [join_tous]: mysqlquery/db server: Unknown column 'MonBoT' in 'where clause'
    Ma requete n'est donc pas bonne et me pose probleme.

    Apparement, $nick est reconnu comme un colonne.
    Voici la sructure des deux tables :
    http://www.aginum.net/phpbb/tables/phpbb_users.html
    http://www.aginum.net/phpbb/tables/p...ser_group.html

    Merci à tous ceux qui pourront me donner un coup de main afin d'tablir ma requete.

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

Discussions similaires

  1. [PHP 4] Accéder à une base de données mysql sous linux
    Par paco503 dans le forum Langage
    Réponses: 12
    Dernier message: 20/12/2012, 11h50
  2. Accéder a une base de données mysql hébergée a godaddy
    Par Issam dans le forum Hébergement
    Réponses: 5
    Dernier message: 02/05/2010, 10h11
  3. Réponses: 3
    Dernier message: 05/10/2006, 17h15
  4. connection à base de donnée MYSQL
    Par zouzou_zaza dans le forum Bases de données
    Réponses: 11
    Dernier message: 04/07/2004, 12h31
  5. XML->Base de donnée Mysql
    Par lheureuxaurelie dans le forum XQUERY/SGBD
    Réponses: 4
    Dernier message: 10/03/2004, 23h47

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