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.
Répondre Avertir


Messages dans ce sujet
Problème package mysqltcl DAV34 - par crash - 30/01/2009, 19:04

Atteindre :


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