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


Problème package mysqltcl DAV34
#1
Bonjour,

j'ai un problème avec l'exemple TCL du package de DAV34, voici le code :


tcl
# -> Login
set sql(login) "root"
# -> Mot de passe
set sql(pass) "pass"
# -> Nom de la base de donnée
set sql(db) "root"
# -> L'host a l'aquelle ce connecté
set sql(host) "localhost"
# -> 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
 
return [mysqlsel $::mysqlink "select statut from access where pseudo = '$arg' and statut = 'On'"]
 
service:deconnect
}
 
##########
# ISSUSPEND #
##########
 
proc issuspend {arg} {
service:connect
 
return [mysqlsel $::mysqlink "select statut from access where pseudo = '$arg' and suspend = 'On'"]
 
service:deconnect
}
 
############
# ISVALIDUSER #
############
 
proc isvaliduser {arg} {
service:connect
 
return [mysqlsel $::mysqlink "select pseudo from access where pseudo = '$arg'"]
 
service:deconnect
}
 
################
# ISVALIDPASSWORD #
################
 
proc isvalidpassword {mot1 mot2} {
service:connect
 
return [mysqlsel $::mysqlink "select pseudo, pass from access where pseudo = '$mot1' and pass = '$mot2'"]
 
service:deconnect
}
 
########
# 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à identifier !"; return 0 }
puthelp "NOTICE $nick :Félicitation, vous êtes identifier"
auth $mot1
} else {
puthelp "NOTICE $nick :Erreur, mot de passe incorrect."; return 0
}
}


En fait, ça fonctionne très bien sauf que ça me lance plusieurs processus dans phpmyadmin et au bout d'un certains temps "mysqlconnect/db server: Too many connections" normalement il ne devrait y avoir aucun process mysql qui doit rester ...

j'ai essayé plusieurs modifications et je n'ai pas réussis.

je vous remercie d'avance.

Cordialement.


Messages In This Thread
Problème package mysqltcl DAV34 - by crash - 30/01/2009, 19:04
RE: Problème package mysqltcl DAV34 - by Kerlian22 - 05/01/2011, 23:32
RE: Problème package mysqltcl DAV34 - by Kerlian22 - 06/01/2011, 23:38

Possibly Related Threads…
Thread Author Replies Views Last Post
  [Demande] Mysqltcl, Explication. aliasangelius 2 3,449 13/07/2014, 16:28
Last Post: aliasangelius
  MysqlTCL Herode 6 4,770 01/02/2011, 09:56
Last Post: CrazyCat
  can't find package htmlparse alanfollow 5 4,977 11/01/2011, 13:51
Last Post: CrazyCat
  Windrop + mysqltcl + sql.free.fr Oggy 1 3,714 22/06/2007, 20:10
Last Post: CrazyCat

Forum Jump:


Users browsing this thread: 1 Guest(s)