Salut
Sur quoi vas tu te baser pour savoir si la daté est expirée en faisant une somme ?Code:query = "SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='%{%k}'"
Déjà, faut voir le type de donnée de "AcctSessionTime", et qu'est ce que ça contient.
Si c'est des dates, faire la somme ne va pas l'faire à mon sens.
Puis vouloir calculer la durée d'accès de chaque abonné, pourquoi pas, mais ce n'est plus du tout la même chose.
- Soit il s'agit d'une durée d'échéance (3, 6, 12 mois) à partir de la date de souscription, ce qui est largement plus simple.
- Soit c'est un temps maxi d'accès au service, ce qui sous entend enregistrer chaque durée d'accès. Là, c'est loin d'être simple.
Mais il me semble qu'on t'as donné une solution, elle me semble la plus simple et logique.
Au départ la personne souscrit un abonnement selon une durée, une date d'échance : 3, 6 ou 12 mois.
Et il suffit à la création de l'abonnement de stocker cette date d'échéance, soit la date en cours + la durée.
Un champ de type DATETIME fera très bien l'affaire à mon sens.
Ensuite, à chaque identification il suffit de comparer la validité de cette date : que la date en cours soit inférieur à la date d'échéance.
A mon sens, essai déjà de définir, ne serait sur papier la manière de gérer cet abonnement, après, une fois validé, suffira de voir comment le mettre en place (les codes).
Là, tu cherche une solution technique avant de savoir comment faire à mon sens, non ?
Après, concernant Prestashop et Freeradius, je ne connais pas non plus.
Ils doivent avoir une doc, ou consulter leur forum, ou au pire leur demander.