8796 sujets

Développement web côté serveur, CMS

Bonjour,

Dans un premier temps, pardonnez moi pour mon sujet un peu tordu. D'habitude je ne touche pas vraiment à la programmation serveur. Mon domaine est d'avantage l'intégration et le design.
Toutefois, il faut savoir être polyvalent ^^

Pour un projet, j'ai besoin de créer une zone de connexion afin de limiter l'accès à un site.
J'ai réussi à faire cela grâce au PHP et une table SQL, mais cela ne rempli pas une des contraintes.

En effet, dans mon projet, chaque compte créé ne dois avoir un accès que durant une période d'un mois. Au delà, le compte doit être détruit.

Le soucis est que dans mon petit programme, un compte créé est créé sans limite de temps. Il est créé tout court en fait, c'est tout.

Est-il possible de rajouter un paramètre (dans la requête SQL ?) pour que le champ créé s'autodétruise une fois son "délais" expiré ? Et comment faire ?

Autrement, je pense qu'il doit être possible de faire une requête qui détruise un champ donné. A quoi ressemble une telle requête ?
Dans mon cas trois éléments sont enregistrés dans la BDD par utilisateur: "username", "password", "email".[i]

Un énorme merci pour vos réponses par avance ! Smiley smile
[/i]
Salut,

La solution la plus simple consiste à mon avis à ajouter un champ qui indique la date de création du compte.

Il te suffit ensuite à chaque connexion de vérifier que le compte a expiré. Si c'est le cas, tu le supprimes.

Autre possibilité : utiliser une tâche périodique sur ton serveur qui se charge de supprimer les comptes périmés. mais je pense que c'est plus lourd à mettre en place.
Pas bête la vérification du champ, je n'avais pas pensé la chose de ce point de vue là ! Merci

Je vais creuser la piste. (hélas comme je ne suis vraiment pas très doué en php, je passe super longtemps à faire mon truc Smiley biggrin )
Modifié par Guirec (26 Nov 2008 - 12:07)
Guirec a écrit :
Je vais creuser la piste. (hélas comme je ne suis vraiment pas très doué en php, je passe super longtemps à faire mon truc Smiley biggrin )

C'est sûr, mais c'est comme ça que l'on apprend. Smiley smile
Modérateur
Salut Guirec,

Je te propose cette méthodologie qui je pense est peut être la plus simple à réaliser bien qu'il y ait des solutions annexes :

1. ajout d'un champs date du type timestamp
2. À chaque inscription, envoi du timestamp actuel (time()).
3. À chaque connexion d'un internaute, suppression des dates obsolètes. Si date > 30 jours = DELETE.

Ce serait un peu comme ceci :

$sql="DELETE FROM ma_table_contact WHERE date>=".time()+(3600*24*30); //30 jours


++
Modifié par Nolem (26 Nov 2008 - 21:29)
Un très grand merci à vous ! Smiley smile

Je travaille tout cela demain, il se fait tard maintenant ^^'