Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


Eggdrop et phpbb
#1
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
heu oui mais non.
Cela impliquerait que ton eggdrop soit IRCop, et c'est très déconseillé.

Mais au cas où, le moyen le plus simple est d'envoyer un message à nickserv: "info nick" et de récupérer la chaine "nick n'est pas enregistré".
En l'absence de cette réponse, tu ne fais rien, si tu as cette réponse, tu ban 1h.

Danger: risque de flood, le lag peut géner...
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#3
Salut et merci pour ta reponse.

Le fait que l'Eggdrop soit IRCOP ne pose pas probleme. Il a les droits minimums que je lui ai configurés sur le serveur.

Pour ta reponse, a ne concorde pas.
Si la personne arrive à penetrer sur ce chan ou un autre, c'est bien qu'elle a été enregistré aupres de nickserv.
Ca ne comparera en rien avec ma base de données des membres du forum !
;)
#4
trotinet Wrote: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.
Tu disais bien que sur ce canal, les gens non-enregistrés pouvaient entrer.

Quoi qu'il en soit, le plus simple à mon avis est donc de faire une page simplifiée sur ton forum à laquelle tu passes l'argument "nick" et qui va te renvoyer "true" ou "false" selon que le nick est celui d'un membre de ton forum ou pas.

avec le package http.tcl, ça devrait faire quelque chose de relativement simple:

Code:
package require http

set forum "http://www.tonforum.com/page.php?user="

bind join - #canal test:user
proc test:user {nick uhost handle chan} {
   if {$nick == $::botnick} { return 0}
   set search [concat $::forum $nick]
   set key [http::geturl $::search]
   if {[http::data $key] == "true"} {
      return 0
   }
   putserv "KICK $chan $nick :Not allowed member"
}
Tu noteras que je fais un fonctionnement restrictif, c'est à dire que je ne kick pas si celui qui entre est le robot ou un membre du forum, mais je kick dans tous les autres cas, c'est à dire si le forum renvoit autre chose que "true".
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#5
Salut CrazyCat et encore merci pour ta reponse.

J'ai, depuis que j'ai posé la question ici, installé une librairie mysql.

J'ai repris le code de bb.tcl (qui marche tres bien) et en ai retiré ce qui m'interessait.

Voici donc ce que ca donne :
http://lpln.pastebin.ca/353426

Cela dit, j'ai une erreur que je n'arrive à resoudre :

Code:
Tcl error [join_tous]: mysqlresult: no result pending
La requete m'a pourtant l'air bonne !

J'essaie de trouvé l'erreur en vain.

Si tu as une solution, ca serait bien aimable !

Merci encore
#6
Je pense que ton erreur est le mysqlenquery.

Code:
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} {puthelp "NOTICE $nick :Vous devez vous identifier"}
mysqlendquery sert à vider les résultats (équivalent du mysql_free_result en php), il doit donc être à la fin de ton script, ou plutôt après avoir exploité ton résultat.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#7
bonjour, y a moyen d'avoir la source entier sens bug ? svp


Forum Jump:


Users browsing this thread: 1 Guest(s)