[Tuto] mysqltcl pour les nuls
#1
à la demande d'un utilisateur de la board je me permet de refaire un tuto

@Source: Eggdrop.fr - wiki:mysqltcl

Pré-requis: Votre dédié dois disposer d'un serveur mySQL

le package mysqltcl
information:

Le package mysqltcl permet a un script TCL d'effectuer des requêtes
sur une base de donnée SQL, On va donc travailler sur les principales
requêtes qui sont: INSERT INTO, UPDATE, SELECT & DELETE FROM, mais avant
on va préparer le serveur à accueillir les requêtes via le language TCL

Nous avons besoin du package mysqltcl
logguez-vous en root sur votre serveur et effectuez la commande suivante
Code :
# apt-get install mysqltcl

Si vous n'avez pas accès au root du dédié demandez à l'administrateur
si le package mysqltcl à été installé sur son dédié

Ce dont on a besoin pour ce TCL:
Le login
Le pass
Le nom de la base
un endroit pour générer une socket

on commence:

on va donc maintenant créer notre requête SQL pour créer notre table
Code :
--
-- Structure de la table `acces`
--
CREATE TABLE  `acces` (
`pseudo` TEXT NOT NULL ,
`pass` TEXT NOT NULL ,
`grade` TEXT NOT NULL ,
`suspend` TEXT NOT NULL ,
`status` TEXT NOT NULL ,
`nick` TEXT NOT NULL
) ENGINE = MYISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `acces`
--
INSERT INTO `acces` (`pseudo`, `pass`, `grade`, `suspend`, `statut`, `nick`) VALUES ('Ahinu', 'b3rliN', '4', 'OFF', 'OFF', '0');
On crée donc par la même occasion l'accès (pseudo Ahinu) avec le mot de passe (pass b3rliN) sur le grade IRC Admin (grade 4)
dont le suspend n'est pas actif (suspend Off) ou l'accès n'est pas utilisé (status off) et le nick n'est pas logué (nick 0)

Code :
# vi acces.tcl

On va dans un premier temps créer la configuration de connexion à la base mySQL
Et afficher la liste des utilisateurs enregistrés dans le robot

TCL
#######################################
# Mon premier script tcl avec mysqtcl #
#######################################
#Login mySQL
set ahi(sql:login) "ahinu"
#Pass mySQL
set ahi(sql:pass) "beRl1"
#base mySQL			
set ahi(sql:db) "ahinu"
#IP mySQL		
set ahi(sql:host) "127.0.0.1"
#socket mySQL
set ahi(sql:sock) "/tmp/ahi.sock"

#Vérification si le package mysqltcl est prèsent !
catch {package require mysqltcl}

# Connexion à la base SQL #
proc service:connect {} {
	set ::mysqlink [mysqlconnect -host $::ahi(sql:host) -user $::ahi(sql:login) -password $::ahi(sql:pass) -sock $::ahi(sql:sock)]
	mysqluse $::mysqlink $::ahi(sql:db)
}
# Déconnexion de la base SQL # 
proc service:deconnect {} {
	mysqlclose $::mysqlink; unset -nocomplain ::mysqlink	
}
 
bind pub - !admin admin:pub
	proc admin:pub {nick host hand channel arg} {
	set nbadmin "0"
	set nblog "0"
	dccbroadcast "*** \2Admin\2 by $nick"
	putquick "NOTICE $nick :\2\0034Authed IDNick Level Nick" 
	service:connect
	mysqlsel $::mysqlink "SELECT * FROM `acces` ORDER BY pseudo"
	if {[mysqlresult $::mysqlink rows] ne 0} {
		while {[set row [mysqlnext $::mysqlink]] != ""} {
			set suspend [lindex $row 3]
			set status [lindex $row 4]
			if {$suspend!="ON"} {
				incr nbadmin 1
				if {$status=="ON"} {
					incr nblog 1
					set status "\2\0033YES\003\2"
					putquick "NOTICE $nick :$status [lindex $row 0] [lindex $row 2] [lindex $row 5]"
				} else {
					set status "\2\0034NO\003\2"
					putquick "NOTICE $nick :$status [lindex $row 0] [lindex $row 2]"
				}
			}
		}
	}
	service:deconnect
	putquick "NOTICE $nick :Il y a $nbadmin Admin enregistré dont $nblog en ligne"
}



Si vous exécutez la commande !admin vous verrez apparaître:

Code :
# Authed IDNick Level Nick
# NO Ahinu 4

PS: Ce tutoriel sera mis à jour très fréquemment
[Image: http://www.web-modules.net/upload/cache/...156/61.gif]
[ www.Ahinu.tk ]

Programmation TCL interprété via Eggdrop + package mysqltcl
=> TCL+SQL~PHP

@Nordnet.
Répondre Avertir


Messages dans ce sujet
[Tuto] mysqltcl pour les nuls - par Ahinu - 14/12/2012, 00:36
RE: [Tuto] mysqltcl pour les nuls - par Ahinu - 14/12/2012, 16:11
RE: [Tuto] mysqltcl pour les nuls - par Ahinu - 14/12/2012, 16:48
RE: [Tuto] mysqltcl pour les nuls - par Ahinu - 14/12/2012, 21:01

Atteindre :


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