Les crons

Eléphanteau du PHP | 30 Messages

06 juil. 2011, 10:43

Mon systeme actuel : si le champ bann vaut 0=alors il peut passé
si le champ bann vaut 1=alors il est bann

Et je debann quand je veux !! grace a une page qui passe la valeur du champ a 0

Mais si je comprend le fonctionnement des crons je pourrait faire une chose mettre des valeurs différentes qui indiquent la durée du bann

ViPHP
ViPHP | 3607 Messages

06 juil. 2011, 10:46

Pas besoin de cron pour ça....
Tu as lu mon post un peu plus haut ?
Il n'est pas forcément nécessaire d'avoir un cron...
En admettant que tu stocke la date de dernier banissement ainsi que la durée du banissement (disons en jours).
Tu peux savoir si l'utilisateur est banni, au sein même d'un requête sql:
SELECT
id, username, email, etc...
( DATE_ADD(date_banissement, INTERVAL duree_banissement DAY) > NOW() ) as is_banned
FROM
tatableutilisateurs

Eléphanteau du PHP | 30 Messages

06 juil. 2011, 11:03

Mais ca debann automatiquement cette requete?

ViPHP
ViPHP | 3607 Messages

06 juil. 2011, 11:13

Bah faut réfléchir un peu ...
Mais on peut s'en servir pour oui...
En remplaçant ton actuel champ bann par ce que j'ai décrit, tu peux avoir is_banned à 1 ou 0 selon la date que l'on a...

Mammouth du PHP | 2278 Messages

06 juil. 2011, 11:18

Bonjour voulant construire un systeme de bannisement ou je n'ai pas besoin de débannir maluement
ex: bann de 2 semaines et debann automatique
me semble suffisant pour comprendre que:
" Comment fonctionne ton système de banissement actuel déjà? "
"Quels actions sont nécessaires pour ne plus être banni?"
n'a guère de sens actuellement.

Il semblerait que tout le monde soit d'accord pour dire que ce n'est pas un recours à cron qui fera l'affaire.

Je reprends ma suggestion:
Le bannissement
<?PHP
/** le bannissement */
mysql_connect ();
mysql_select_db ("blog");
/** la table bannis a deux colonnes
id int(11) (numero du banni)
datefin date (date de fin de bannissement)
*/
/** bannir qqn pour une semaine*/
$numero_banni = 313; // toute valeur fournie par toi (un post par exemple
// casse indifférente (DAY ou HOUR ou MINUTE entre autres)
$requete = "insert into bannis (id,  datefin) values( $numero_banni, DATE_ADD(NOW(),  INTERVAL 7 DAY))";
mysql_query ($requete); 
?>
Le script de connexion ajouter au début du script de connexion
<?PHP
$requete = "delete from bannis where datefin < now()"; // il faut mettre < parce que now() renvoie date et heure... ca fait, involontairement de ma part, un ban à la seconde près...
mysql_query ($requete);
?>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

ViPHP
ViPHP | 3607 Messages

06 juil. 2011, 11:31

Bon c'est gentil sirakawa de donner des solutions toutes faites, mais ce n'est pas ce qui formera ceux qui viennent quémander de l'aide.
Je trouve vraiment contre-productif de vouloir absolument pré-mâcher le travail des débutants. En l’occurrence quand je demande des précisions sur le pourquoi du comment notre amis bannis ses membres et quel comportement il souhaite produire quand il parle d'automatisme, c'est plutôt pour lui que je le fait, car visiblement il ne sait pas vraiment lui-même ce qu'il souhaite.
Donc un peu de diplomatie et de patience seraient les bienvenus. Merci ;)

D'autres part ta solution implique une nouvelle table, alors qu'il n'y en a pas besoin... Je sais pas si vous avez lu la petite requête que j'ai mise, elle est grandement suffisante... et elle évite le DELETE supplémentaire que tu infliges à la base de donnée à chaque connexion...

Eléphanteau du PHP | 30 Messages

06 juil. 2011, 12:08

Bon c'estb quoi la meilleure solution? , je suis perdu

ViPHP
ViPHP | 3607 Messages

06 juil. 2011, 12:17

La meilleure solution c'est avant tout celle que tu auras comprise, et que tu maîtriseras ;)
Pose les choses sur papier, écris les specs de ce que tu souhaites, soit clair dans ce que tu veux, et la manière dont tu peux l'obtenir.
A mon avis on est pas dans un problème de "comment marche les crons? je sais pas m'en servir" mais plutôt de savoir écrire (ou penser) précisément les comportements souhaités, et ensuite les analyser pour savoir comment obtenir les-dits comportements.

Pour finir qu'est-ce que tu n'as pas compris dans la solution de sirakawa ou dans la mienne?

Eléphanteau du PHP | 30 Messages

06 juil. 2011, 14:11

La solution a shira m'est pas trop utile: je n'ai pas de page de connexion .
Cette espace n'a pas d'espaces menbres

Concretement dans ta solution Jojo je doit créer combien de champs en plus (de quelle type) dans mysql , dans la meme table?
Et la requete c'est la requete principale?

ViPHP
ViPHP | 3607 Messages

06 juil. 2011, 14:28

Cette espace n'a pas d'espaces menbres
Qu'est-ce que tu entends par là? En fait à quoi te sert le banissement précisément? Il empêche simplement de se connecter?
Concretement dans ta solution Jojo je doit créer combien de champs en plus (de quelle type) dans mysql , dans la meme table?
Et la requete c'est la requete principale?
C'est à toit de choisir ça! il faut que tu arrives à écrire toi même tes besoins...
Quand tu suspend un membre, tu peux stocker soit la date de fin de banissement par exemple, ou encore la date de banissement + la durée de banissement (auquel cas tu peux décider de ne pas donner de durée pour un banissement à vie)...
C'est à toi de faire des choix! Comment tu vois les chose?

Eléphanteau du PHP | 30 Messages

06 juil. 2011, 22:27

C'est un systeme d'envoie de fichier par formulaire qui se base sur l'email
Donc il bann l'e-mail

devlop78
Invité n'ayant pas de compte PHPfrance

07 juil. 2011, 00:43

LOL ... Peut-être que c'est dès le départ, un problème de modélisation ... :)

Mammouth du PHP | 2278 Messages

07 juil. 2011, 16:05

Concrètement un cron peut parfaitement intervenir sur une base de données: il suffit de se pencher sur la syntaxe de mysql en ligne, et sur les redirections du monde Unix...
et de fourrer le résultat dans un fichier rendu exécutable...
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

ViPHP
ViPHP | 3607 Messages

07 juil. 2011, 16:16

C'est un systeme d'envoie de fichier par formulaire qui se base sur l'email
Donc il bann l'e-mail
Donc concrètement où sont stockés tes adresse email? est-ce que tu as une table qui stocke tout les utilisateurs? (qu'ils soient bannis ou non...)

Eléphanteau du PHP | 30 Messages

09 juil. 2011, 10:46

Oui je stocke l'email