erreur script et connection bdd
#1
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) :
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"
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
Répondre
#2
bon j'ai essayé avec un autre script sitedb.v1.0 trouver sur tclscript.com
le script se lance impec
mais a la commande !site www.google.fr add
voici l'erreur
Code :
[08:43:45] Sitedb.v1.0: Checking if WWW.GOOGLE.FR exists ... [08:43:45] Sitedb.v1.0: Executing SELECT * FROM sites WHERE channel='#zorrax' AND shortname='WWW.GOOGLE.FR' [08:43:45] * Last context: tclhash.c/710 [Tcl proc: sitedb, param: $_pub1 $_pub2 $_pub3 $_pub4 $_pub5] [08:43:45] * Please REPORT this BUG! [08:43:45] * Check doc/BUG-REPORT on how to do so. [08:43:45] * Wrote DEBUG [08:43:45] * SEGMENT VIOLATION -- CRASHING!

ds le script j'ai remplacer
#load /usr/lib/libmysqltcl2.50.so
par
catch {package require mysqltcl}

est ce que ca a une grosse influence ?
[/code][/align]
Répondre
#3
la connection bdd a été testé et marche mais toujours le probleme du script
Code :
# 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 }
avec ce script de dav34 pareil
Code :
<zorrax> .afficher [19:32] <bot> [19:32:50] * Last context: tclhash.c/710 [Tcl proc: dcc:afficher, param: $_dcc1 $_dcc2 $_dcc3] [19:32] <bot> [19:32:50] * Please REPORT this BUG! [19:32] <bot> [19:32:50] * Check doc/BUG-REPORT on how to do so. [19:32] <bot> [19:32:50] * Wrote DEBUG [19:32] <bot> [19:32:50] * SEGMENT VIOLATION -- CRASHING! - DCC session closed
le bot plante
est ce que quelqu'un a eu la meme erreur ??
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit - Discutez en toute liberté - Transitionnez vers Linux - Discussions dans le Lauragais - Communauté LGBT respectueuse - soutien aux victimes de cybermalveillance - pour les filles par les filles Le forum pour passer le temps