|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 40 ![]() |
Bonjour,
Je suis en train de travailler sur un site e-commerce (prestashop) et je voudrais mettre un système d'abonnement en place mais je n'ai aucune idée sur la manière à adopter. On gros il aura 3 abonnements qui seront valables 3 mois, 6 mois et 12 mois Après avoir souscris un de ces abonnements l'utilisateur aura accès à un services accessible via son pseudo et mdp. Jusqu'ici pas de soucis. Comment faire pour que son accès expire automatiquement, sans que ses identifiants soient supprimés? merci |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
Faut réfléchir autrement.
Tu sais à quel moment il s'est inscrit et à quel moment il prend un abonnement. ça fait 2 champs date en base, même si je te conseille sérieusement de mettre les abonnements dans une table séparée, pour le cas où il renouvellerait son abonnement, ça te permettra d'avoir un historique. A chaque fois qu'il se connecte, tu regardes si l'abonnement est toujours valable. Si oui, tu laisses filer, si non, tu modifies l'abonnement pour le signaler comme arrivé à terme et tu remontes l'info à l'utilisateur comme quoi l'abonnement est expiré.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 40 ![]() |
merci pour cette réponse, seulement moi et php ca fait deux
alors si quelqu'un pourrait me coder cela pour qu'on puisse le coupler avec prestashop je paierais prix merci |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() Taoufiq BenDéveloppeur Web Inscription : mai 2009 Messages : 455 ![]() |
Tu poura faire deux champ dans la table client : date_abonnement, date_fin_abonnement .
le champs date abonnement prendra la date ou il est inscrit et le champs date_fin_abonnement prendra la date_abonnement + nombre_de_jour_de_labonnement_selectione. comme ca a l'authentification tu verifier si la date systeme est entre ces deux champs |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 40 ![]() |
Et comment je dois vérifier la validité en sachant que le client ne passe pas par site web?
C'est freeradius qui s'occupe d'authentification c'est donc de ce couté là que je dois bidouiller? Ca c'est complique encore plus... merci |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
On s'en fout que son abonnement soit valide ou non si il ne l'utilise pas, non? C'est quand il cherche à l'utiliser qu'on vérifie si il y a encore droit. Donc oui côté authentification.
C'est un peu comme si Microsoft vérifiait tous les jours si ta licence Office est toujours valable. Ils en ont rien à secouer, sauf que lorsque tu vas démarrer Office, lui va vérifier si t'as encore le droit de t'en servir.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 40 ![]() |
Ok je vois mieux.
Maintenant de quel manière je dois vérifier le champs "date" ? Avez vous un bout de code? |
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
Euh grosso modo volontairement allégé, par exemple:
Code :
On va pas non plus te mâcher le travail. Des scripts de comparaison de date en php, il y en a plein sur le net et sur ce forum.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
||
|
00
|
|
|
#9 | ||
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 40 ![]() |
bon, si j'ai bien compris il faut que je modifie le fichier dialup.conf de freradius et notamment cette partie:
Code :
Le table est "order_detail" et le champ est "download_deadline" |
||
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
Euh je t'avouerai qu'après là moi, je ne connais ni prestashop, ni freeradius, ça dépasse le cadre de ce que je suis capable de te répondre.
Mais j'ai l'impression que dans ce que tu remontes, on cherche juste à choper des infos utilisateur. Je sais pas trop si c'est là que c'est faisable. Enfin j'en suis pas convaincu mais je ne pourrai pas l'affirmer pour autant vu que je ne connais pas le système.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 40 ![]() |
oui effectivement, je cherche à dire à freeradius d'aller vérifier user et mdp (ce qu'il fait par défaut) et en plus vérifier la date de validité dans une autre table (celle de prestashop)
|
|
|
00
|
|
|
#12 | ||
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 40 ![]() |
j'avance un peu.
Après la lecture de la doc, il s'avère que freeradius peut gérer la validité des comptes nativement (en fin après quelques modifications): Code :
On ajoute le nombre de secondes dans la table est le tour est joué. Maintenant je cherche de pouvoir mettre une date de genre 28/12/2010 au lieu de le nombre des secondes |
||
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
ça m'étonnerait que cette modif soit faisable/envisageable/réaliste. Le nombre de secondes, ce qu'on appelle un timestamp, est une sorte d'astuce pour simplifier la vie du développeur. ça facilite énormément les calculs sur le temps.
En tout cas, c'est cool que tu partages l'info qu'il est possible d'ajouter ce contrôle et que c'est accessible en lisant la doc. Toujours bon à savoir
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 40 ![]() |
En fait je cherche à mettre la date plutôt que le nombre de secondes car après l'expiration pour pouvoir renouveler l'abonnement il faut d'abord mettre à zero (reset) , la choses je ne sais pas (encore) faire
|
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 40 ![]() |
En fait, après la réflexion, je crois lorsque utilisateur renouvelle l'abonnement il suffit ajouter le nombre de secondes sur celui présent déjà dans la BDD non?
|
|
|
00
|
|
|
#16 |
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
C'est tout à fait ça
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|
00
|
|
|
#17 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 40 ![]() |
ok, mais le soucis que j'ai maintenant ce que freeradius compte le temps qu'on passe sur le serveur or je voudrais que le temps continuer à s'ecouler même après la déconnexion.
Autrement si un utilisateur souscris par exemple un abonnement d'un mois (2592000 secondes) rien lui empêche de l'utiliser sur une durée d'un an et ce n'est pas ce que je cherche |
|
|
00
|
|
|
#18 |
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
Ah ouais plus compliqué. Si tu connais la date de renouvellement/souscription (je suppose que oui), tu n'as qu'à soustraire les secondes de différence entre la connexion et la date de renouvellement/souscription et après tu contrôles si il a toujours le droit. Tu contournes ainsi la sécurité suggérée.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|
00
|
|
|
#19 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 40 ![]() |
je me demandai cette ligne:
Code :
query = "SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='%{%k}'"
Si c'est le cas peut être qu'on peut lui dire au lieu de compter le temps dans le champ AcctSessionTime aller plutôt voir un autre champ avec une date de type jj/mm/année et la comparer avec la date actuelle, ca doit être possible ca? |
|
|
00
|
|
|
#20 |
|
Membre éclairé
![]() Gérard OkonoDéveloppeur Web Inscription : juillet 2006 Messages : 707 ![]() |
Tu as reçu des réponses concernant comment faire un système d'abonnements. Je suppose à ce niveau ca va. Pour ce qui est de la modification de Prestashop ou autre cms, je te conseille de chercher des forums dédiés.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com