06/11/2010, 09:07
bonjour je debute aussi ds les scripts et je n'arrive pas a faire une connction a une base mysql avec le script suivant (codé par DAV34) :
qui est le code que j'ai trouvé sur le wiki
quand je tape !accesslist je recuperer cet erreur en dcc sur le bot
Identd Already Disabled. (Tried to Close)
[08:00] <bot> [08:00:01] * Context: tclhash.c/721 []
et impossible de tester la connection
comment trouver une commande simple pouvant me retourner l'etat de la connection sql ??
merci d'avance
Code :
##############
# CONFIGURATION #
##############
# -> Login
set sql(login) "pred"
# -> Mot de passe
set sql(pass) "*****"
# -> Nom de la base de donnée
set sql(db) "pre2"
# -> L'host a l'aquelle ce connecté
set sql(host) "adresses"
# -> Localisation de fichier mysql.sock
set sql(sock) "/tmp/mysql.sock"
###########
# PAQUETAGE #
###########
catch {package require mysqltcl}
#######
# CODE #
#######
#########
# CONNECT #
#########
proc service:connect {} {
set ::mysqlink [mysqlconnect -host $::sql(host) -user $::sql(login) -password $::sql(pass) -sock $::sql(sock)]
mysqluse $::mysqlink $::sql(db)
}
###########
# DECONNECT #
###########
proc service:deconnect {} {
mysqlclose $::mysqlink; unset -nocomplain ::mysqlink
}
########
# ISAUTH #
########
proc isauth {arg} {
service:connect
set res [mysqlsel $::mysqlink "select statut from access where pseudo = '$arg' and statut = 'On'"]
service:deconnect
return $res
}
##########
# ISSUSPEND #
##########
proc issuspend {arg} {
service:connect
set res [mysqlsel $::mysqlink "select statut from access where pseudo = '$arg' and suspend = 'On'"]
service:deconnect
return $res
}
############
# ISVALIDUSER #
############
proc isvaliduser {arg} {
service:connect
set res [mysqlsel $::mysqlink "select pseudo from access where pseudo = '$arg'"]
service:deconnect
return $res
}
################
# ISVALIDPASSWORD #
################
proc isvalidpassword {mot1 mot2} {
service:connect
set res [mysqlsel $::mysqlink "select pseudo, pass from access where pseudo = '$mot1' and pass = '$mot2'"]
service:deconnect
return $res
}
########
# AUTH #
########
proc auth {arg} {
service:connect
mysqlsel $::mysqlink "UPDATE `access` SET `statut` = 'On' WHERE pseudo = '$arg'"
service:deconnect
}
#######
# AUTH #
#######
bind msg - auth msg:auth
proc msg:auth {nick host hand arg} {
set mot1 [lindex $arg 0]
set mot2 [lindex $arg 1]
if { $mot1 == "" || $mot2 == "" } { puthelp "NOTICE $nick :Commande auth : /msg $::botnick auth <pseudo> <pass>"; return 0 }
if { ![isvaliduser $mot1] } { puthelp "NOTICE $nick :$mot1 user inconnue !"; return 0 }
if { [isvalidpassword $mot1 $mot2] } {
if { [issuspend $mot1] } { puthelp "NOTICE $nick :Accés suspendu"; return 0 }
if { [isauth $mot1] } { puthelp "NOTICE $nick :Vous êtes déjà identifié !"; return 0 }
puthelp "NOTICE $nick :Félicitation, vous êtes identifier"
auth $mot1
} else {
puthelp "NOTICE $nick :Erreur, mot de passe incorrect."; return 0
}
}
#########
# SQLTEST #
#########
# Il vous faudra taper .afficher en dcc chat pour que cette commande fonctionne
bind dcc afficher dcc:afficher
proc dcc:afficher {hand idx arg} {
service:connect
mysqlsel $::mysqlink "SELECT * FROM `access` ORDER BY id"
if {[mysqlresult $::mysqlink rows] ne 0} {
while {[set row [mysqlnext $::mysqlink]] != ""} {
putlog "id : [lindex $row 0]"
putlog "pseudo : [lindex $row 1]"
putlog "pass : [lindex $row 2]"
putlog "grade : [lindex $row 3]"
putlog "suspend : [lindex $row 4]"
putlog "statut : [lindex $row 5]"
}
}
service:deconnect
}
bind dcc B accesslist accesslist:cmd
proc accesslist:cmd {hand idx arg} {
service:connect
mysqlsel $::mysqlink "SELECT * FROM `access` ORDER BY nick"
if {[mysqlresult $::mysqlink rows] ne 0} {
while {[set row [mysqlnext $::mysqlink]] != ""} {
putdcc $idx "\2[lindex $row 0]\2 \[pass\] [lindex $row 1] \[host/ip\] [lindex $row 2] \[e-mail\] [lindex $row 3]"
}
}
service:deconnect
putdcc $idx "\2\2"
putdcc $idx "\2Fin de la liste\2."
return 1
}
putlog "Test v. 1.1 (C) successfully loaded"
quand je tape !accesslist je recuperer cet erreur en dcc sur le bot
Identd Already Disabled. (Tried to Close)
[08:00] <bot> [08:00:01] * Context: tclhash.c/721 []
et impossible de tester la connection
comment trouver une commande simple pouvant me retourner l'etat de la connection sql ??
merci d'avance