Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/12/2010, 02h40   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 40
Points : 3
Points : 3
Par défaut durée de validité

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
manu_789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 10h27   #2
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
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é.
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 12h26   #3
Invité de passage
 
Inscription : novembre 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 40
Points : 3
Points : 3
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
manu_789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 13h19   #4
Membre chevronné
 
Homme Taoufiq Ben
Développeur Web
Inscription : mai 2009
Messages : 455
Détails du profil
Informations personnelles :
Nom : Homme Taoufiq Ben
Âge : 25
Localisation : Maroc

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2009
Messages : 455
Points : 639
Points : 639
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
m4riachi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 13h41   #5
Invité de passage
 
Inscription : novembre 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 40
Points : 3
Points : 3
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
manu_789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 13h47   #6
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
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é.
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 13h51   #7
Invité de passage
 
Inscription : novembre 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 40
Points : 3
Points : 3
Ok je vois mieux.

Maintenant de quel manière je dois vérifier le champs "date" ? Avez vous un bout de code?
manu_789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 15h04   #8
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
Euh grosso modo volontairement allégé, par exemple:
Code :
1
2
3
if($dateCourante>($dateSouscription + $dureeAbonnement)) {
  // hop mec faut que tu repasses à la caisse
}
Une vérif classique quoi.
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é.
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 15h05   #9
Invité de passage
 
Inscription : novembre 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 40
Points : 3
Points : 3
bon, si j'ai bien compris il faut que je modifie le fichier dialup.conf de freradius et notamment cette partie:

Code :
1
2
3
4
5
6
7
8
authorize_check_query = "SELECT id, username, attribute, value, op \
          FROM ${authcheck_table} \
          WHERE username = '%{SQL-User-Name}' \
          ORDER BY id"
	authorize_reply_query = "SELECT id, username, attribute, value, op \
          FROM ${authreply_table} \
          WHERE username = '%{SQL-User-Name}' \
          ORDER BY id"
Maintenant comme faut t il modifier en sachant que le champ de date d'expiration se trouve dans une autre table?

Le table est "order_detail" et le champ est "download_deadline"
manu_789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 15h17   #10
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
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é.
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 15h25   #11
Invité de passage
 
Inscription : novembre 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 40
Points : 3
Points : 3
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)
manu_789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 17h16   #12
Invité de passage
 
Inscription : novembre 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 40
Points : 3
Points : 3
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 :
1
2
3
4
5
6
7
sqlcounter noresetcounter {
        counter-name = Max-All-Session-Time
                check-name = Max-All-Session
                sqlmod-inst = sql
                key = User-Name
                reset = never
        query = "SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='%{%k}'
"

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
manu_789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 17h51   #13
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
ç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é.
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 18h02   #14
Invité de passage
 
Inscription : novembre 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 40
Points : 3
Points : 3
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
manu_789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 18h04   #15
Invité de passage
 
Inscription : novembre 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 40
Points : 3
Points : 3
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?
manu_789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 20h39   #16
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
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é.
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 20h55   #17
Invité de passage
 
Inscription : novembre 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 40
Points : 3
Points : 3
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
manu_789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 23h01   #18
Membre Expert
 
Avatar de gwinyam
 
Homme Mathieu ROBIN
Développeur Web
Inscription : mai 2006
Messages : 1 116
Détails du profil
Informations personnelles :
Nom : Homme Mathieu ROBIN
Âge : 25
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mai 2006
Messages : 1 116
Points : 2 142
Points : 2 142
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é.
gwinyam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 00h23   #19
Invité de passage
 
Inscription : novembre 2010
Messages : 40
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 40
Points : 3
Points : 3
je me demandai cette ligne:

Code :
query = "SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='%{%k}'"
C'est de SQL non?

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?
manu_789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 07h27   #20
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 707
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 707
Points : 328
Points : 328
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.
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h50.


 
 
 
 
Partenaires

Hébergement Web