Consultation de la validité de votre abonnement
source libpasse.ttml
source libdate.ttml
load ./libcrypt.so
package require sql
set connexion [sql connect localhost refer rentof]
sql selectdb $connexion refer
proc erreur {message} {
hputs "$message
retour"
set f [open /home/web/menueto.html] ; hputs [read $f] ; close $f
}
hgetvars
foreach v {username password} {
set $v $VARS($v)
}
set ok 1
foreach {var desc regexp} {
username {nom d'utilisateur} {^[-a-zA-Z0-9_.][-a-zA-Z0-9_.]*$}
password {mot de passe} {^[-a-zA-Z0-9_._@=+*/$%!:;,?./][-a-zA-Z0-9_._@=+*/$%!:;,?./]*$}
} {
if {![regexp $regexp $var]} {
hputs "Ce paramè ne convient pas : $desc."
set ok 0
}
}
if {$ok} {
if {! [file isdir /home/$username]} {
erreur "Cette boîte-aux-lettres n'existe pas."
return
}
sql query $connexion "SELECT expire FROM client WHERE username='$username'"
set i 0
while {[set row [sql fetchrow $connexion]] != ""} {
incr i
set expire $row
}
sql endquery $connexion
if {$i == 0} {
erreur "Cette boîte-aux-lettres ne correspond pas à un abonnement REFER."
return
}
if {$i != 1} {
erreur "Problème avec cette boîte-aux-lettres... Merci de nous contacter."
return
}
set bd $i
if {! [motdepasse_valide $username $password 1]} {
erreur "Mot de passe invalide..."
return
} else {
set now [clock seconds]
if {![string compare 0000-00-00 $expire]} {
erreur "Ce compte est expiré."
return
}
if {[regexp {^(....)-(..)-(..)$} $expire dummy annee mois jour]} {
set exp [clock scan "$mois/$jour/$annee"]
} else {
erreur "Problème avec cette boîte-aux-lettres... Merci de nous contacter."
return
}
if {$now > $exp} {
erreur "Ce compte est expiré."
return
}
hputs "Le compte $username@refer.mg est valide jusqu'au [date_francaise $expire]."
hputs "
retour"
}
}
sql disconnect $connexion
set f [open /home/web/menueto.html] ; hputs [read $f] ; close $f
?>
set f [open /home/web/menueto.html] ; hputs [read $f] ; close $f
?>