[Tuto] Les fichiers comme DB
#23
bon j vais tenter de t expliquer une dernière foi, avec des bout de code simples
on va commencer par la structure du fichier qui contient les données utilisateurs (pseudo pass...)

donc le fichier "users.db" (par exemples)
Citation :#accueil alias_angelius motdepassdefou 200 alias_angelius*!*@*
#services alias_angelius passwordquitu 350 alias_angelius*!*@*
#accueil autre_pseudo unmotdepass 400 sonhost*!*@*machin.net

donc ici on retrouve le salon ou est autorisé le pseudo avec son mot de pass, son level et le host avec lequel il sera reconnu

on passe a la proc de auth (très simpliste)
/msg lebot auth #salon pseudo pass
tcl
bind msg - auth mon:auth
 
proc mon:auth {nick host hand arg} {
    variable authed ;#on déclare la variable qui contiendra les utilisateurs identifié

    #on ouvre le fichier et récupère les données qui sont dedans
    set a [open users.db]
    set users [split [read $a] "\n"]
    close $a
    #les données sont contenues dans $users
 
    set salon [lindex $arg 0]
    set pseudo [lindex $arg 1]
    set pass [lindex $arg 2]
    foreach u $users {
        set c [lindex $u 0]
        #on verifi que le salon correspond au salon contenue dans la ligne du fichier, sinon on saute a la boucle suivante
        if ![string equal -nocase $c $salon] continue
        #on controle si le pseudo correspond, sinon on saute la boucle suivante
        set ps [lindex $u 1]
        if ![string equal -nocase $ps $pseudo] continue
        #on vérifie si le mot de passe correspond
        set pa [lindex $u 2]
         if ![string equal $pa $pass] continue
        #pour finir on teste le host
        set h [lindex $u 4]
        if ![string match -nocase $h "$nick!$host"] continue
        #arrivé la l utilisateur a remplis toutes les conditions pour s identifier donc on va le retenir
        set level [lindex $u 3]
        set authed($nick,$chan) $level
        putserv "NOTICE $nick :Vous êtes identifié sur le salon $salon"
        # et on fini la procédure
        return
    }
    #sinon arrivé la l utilisateur n'as pas d'accès donc on lui dit
    putserv "NOTICE $nick :Vous n'avez pas d'accès"
}

#le op maintenant
set level(op) 200
bind pub - !op mon:op
 
proc mon:op {nick host hand chan arg}
    global level
    variable authed
    #on vérifie que la personne est auth sur le salon et que le level est suffisant
    if {[info exists authed($nick,$chan)] && $authed($nick,$chan)>=$level(op)} {
        putserv "MODE $chan +o $nick"
    } else {
        putserv "NOTICE $nick :Accès refusé"
    }
}


C'est en reconnaissant ses erreurs que l'on progresse Wink
Répondre Avertir


Messages dans ce sujet
[Tuto] Les fichiers comme DB - par CrazyCat - 21/06/2011, 21:42
RE: [Tuto] Les fichiers comme DB - par fedora - 21/06/2011, 22:34
RE: [Tuto] Les fichiers comme DB - par CrazyCat - 24/06/2011, 23:12
RE: [Tuto] Les fichiers comme DB - par djkenny - 24/06/2011, 23:32
RE: [Tuto] Les fichiers comme DB - par CrazyCat - 25/06/2011, 11:02
RE: [Tuto] Les fichiers comme DB - par CrazyCat - 27/06/2011, 21:02
RE: [Tuto] Les fichiers comme DB - par djkenny - 27/06/2011, 22:07
RE: [Tuto] Les fichiers comme DB - par CrazyCat - 27/06/2011, 22:28
RE: [Tuto] Les fichiers comme DB - par djkenny - 27/06/2011, 22:33
RE: [Tuto] Les fichiers comme DB - par djkenny - 28/06/2011, 20:07
RE: [Tuto] Les fichiers comme DB - par fedora - 28/06/2011, 19:47
RE: [Tuto] Les fichiers comme DB - par djkenny - 28/06/2011, 20:19
RE: [Tuto] Les fichiers comme DB - par djkenny - 28/06/2011, 20:23
RE: [Tuto] Les fichiers comme DB - par djkenny - 28/06/2011, 20:27
RE: [Tuto] Les fichiers comme DB - par djkenny - 28/06/2011, 20:58
RE: [Tuto] Les fichiers comme DB - par CrazyCat - 01/07/2011, 16:06
RE: [Tuto] Les fichiers comme DB - par djkenny - 02/07/2011, 00:08
RE: [Tuto] Les fichiers comme DB - par djkenny - 02/07/2011, 10:46
RE: [Tuto] Les fichiers comme DB - par djkenny - 02/07/2011, 11:16
RE: [Tuto] Les fichiers comme DB - par djkenny - 02/07/2011, 11:31
RE: [Tuto] Les fichiers comme DB - par djkenny - 02/07/2011, 11:35
RE: [Tuto] Les fichiers comme DB - par djkenny - 02/07/2011, 12:10
RE: [Tuto] Les fichiers comme DB - par djkenny - 02/07/2011, 12:41
RE: [Tuto] Les fichiers comme DB - par djkenny - 04/07/2011, 20:14
RE: [Tuto] Les fichiers comme DB - par djkenny - 04/07/2011, 20:35
RE: [Tuto] Les fichiers comme DB - par djkenny - 04/07/2011, 20:43
RE: [Tuto] Les fichiers comme DB - par djkenny - 04/07/2011, 21:15

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté