Suppression de compte au bout de 24H

Ce topic a été résolu
FireTrigger

FireTrigger Le 24 août 2016 à 23:04 (Édité le 25 janvier 2019 à 17:52)

Bonjour, j'aimerais supprimer des comtes utilisateurs de mon site si le comte en question n'a pas été vérifié (j'ai déjà tout fait en terme de mail de confirmation etc...), il me manque juste le code qui permet de DELETE au bout de 24H mais je ne sais pas où le mettre ni le faire en faite :/.
Petite précision : je veux faire ça quand la personne n'est pas connecté, comme ça si des gens s'inscrivent en mettant n’importe-quoi, il ne pourrons pas vérifier leur e-mail et du-coup le compte se fera supprimer automatiquement.

Merci d'avance ! 
TheFlameflo

TheFlameflo Le 25 août 2016 à 03:38

Salut !

Premièrement, dans ta base de données, il te faudra un champ qui donne la date d'inscription du membre et un champ qui dit si l'utilisateur est validé ou non.

Alors, il te faudra créer une tâche Cron qui supprimera tous les utilisateurs qui ne sont pas confirmés (donc que la valeur "confirmé" dans la bdd est négative) et dont l'intervalle entre l'heure d'inscription et actuellement est plus de 24 heures. Pour tester si un utilisateur est en ligne, il te suffit de modifier une valeur qui indique si l'utilisateur est connecté ou non quand sa session démarre et quand elle finit.

La tâche Cron peut être programmée quand tu veux, par exemple à toutes les 30 minutes, toutes les heures, etc.

Si tu as d'autres questions, n'hésite pas ! 😀
FireTrigger

FireTrigger Le 25 août 2016 à 11:22

salut, merci de ta réponse, alors, j'ai déjà le champ de date d'inscription et l'autre qui dit si il est validé ou non. Mais il faudrait que dès qu'il se connecte, ça commence le comte a rebours car 'confirme' = 0 et si il valide, et bien ça annule, mais je veux que ça le fasse même s'il n'est pas en ligne 😀. Si tu pouvais m'aider encore une fois stp ^^ ?
Balatharas

Balatharas Le 25 août 2016 à 20:53

Salut salut, je souhaiterais faire la même chose, j'ai la colonne "confirme" et "dateinscr". "$dateinscr" se définit comme ça:
$nom_jour_fr = array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
$mois_fr = array("", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
list($nom_jour, $jour, $mois, $annee) = explode('/', date("w/d/n/Y")); 
$dateinscr = htmlspecialchars($nom_jour_fr[$nom_jour].' '.$jour.' '.$mois_fr[$mois].' '.$annee);
Pour tester si un utilisateur est en ligne, il te suffit de modifier une valeur qui indique si l'utilisateur est connecté ou non quand sa session démarre et quand elle finit.
Je pense qu'il faut faire ça:
if(isset($_SESSION['id'])) {
   //Requete pour delete
}
Le problème c'est que je ne sais pas du tout ce qu'est une tache Cron, et sur ton lien je ne comprends rien xD si tu pouvais me montrer du code tout en m'expliquant grosso-modo ce serait bien.
Ma colonne pour voir si un utilisateur a confirmé s'appelle "confirmer" et la date de l'inscription: "dateinscr"
Je voudrais que le "compte a rebours" démarre dès que l'utilisateur s'inscrit, mais du coup je me demande si j'ai besoin de ça:
Pour tester si un utilisateur est en ligne, il te suffit de modifier une valeur qui indique si l'utilisateur est connecté ou non quand sa session démarre et quand elle finit.
Je pense qu'il faut faire ça:
if(isset($_SESSION['id'])) {
   //Requete pour delete
}
Merci ^^'
Balatharas

Balatharas Le 26 août 2016 à 13:13

Comment as-tu réussi ? @FireTrigger ?
FireTrigger

FireTrigger Le 27 août 2016 à 12:10

@Beignet Bah en faite je n'ai pas réussi mais j'attends de le mettre en ligne pour ensuite utiliser Cron, je sais pas si tu en a déjà entendu parler ?
Balatharas

Balatharas Le 27 août 2016 à 12:14

Bah non c'est pour ça :/ @FireTrigger
FireTrigger

FireTrigger Le 27 août 2016 à 12:53

Ah :/ moi j'ai juste entendu parler mais je sais pas trop comment ça marche :/

Et sinon question un peu HS mais cher quel hébergeur vas-tu ?
Balatharas

Balatharas Le 27 août 2016 à 12:59

Cher Hostinger 😋
FireTrigger

FireTrigger Le 27 août 2016 à 13:29

ah moi aussi j'y étais avant mais j'ai lu que c'était pas si bien, ta pas eu de problème toi depuis que ty est ?
Balatharas

Balatharas Le 27 août 2016 à 23:01

Jy suis depuis 1 an et le seul problème que j'ai, c'est que mon serveur n'est pas en France, il est dans je-ne-sais-quel pays, et il y a 2 heures de décalage horaire. Mais ce n'est pas gênant j'ai trouvé une solution pour quand je veux avoir l'heure d'envoi d'un message par exemple.
FireTrigger

FireTrigger Le 29 août 2016 à 00:38

ah ok merci
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte