limite l'acces a temps donne

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : limite l'acces a temps donne

Re: limite l'acces a temps donne

par xTG » 08 févr. 2011, 17:30

En effet, désolé d'avoir mal lu.

Voilà déjà un début de piste, pas le temps de t'apporter plus. :)
SELECT debut, fin , ..... , FROM users WHERE  .......;
Soit le retour de la requête récupéré dans une variable qu'on nommera $row et qui sera un array.
$acces = false; // accès à la page
// décomposition de la date
$annee = substr($row['fin'],0,4);
$mois = substr($row['fin'],5,2);
$jour = substr($row['fin'],8,2);
if( checkdate($mois, $jour, $annee) === true )
{
  // date non nulle et valide
}
else
{
  // date invalide => nulle ?
  // UPDATE du n-uplet avec la date de fin = date("Y-m-d H:i:s",time() + 60*60*12)
  $acces = true;
}

Re: limite l'acces a temps donne

par aprods » 08 févr. 2011, 17:19

Non car je veut mettre a jour le "fin" que si il est a 0 cf 2eme condition
lors du login on verifie la date de fin
Si egale a zero on la met a jour (debut + duree) et on donne acces a la page jusqu'a "fin"
si plus grand que zero mais plus petit que now() on donne acces a la page jusqu'a "fin"
si plus grand que zero et plus grand que now() on donne pas acces a la page.

Re: limite l'acces a temps donne

par xTG » 08 févr. 2011, 17:16

Je vois un soucis de taille dans ce que tu veux faire.
Il ne sert à rien ton système d'interdiction puisqu'il suffira à ton utilisateur de se reconnecter pour recréer une date et réaccéder à la page.

limite l'acces a temps donne

par aprods » 08 févr. 2011, 16:39

Salut
En essayant d'etre clair, J'ai besoin de votre aide:
J'ai une base comme ceci
TABLE `users` (
  `nom` varchar(255) character set utf8 NOT NULL,
  `prenom` varchar(255) character set utf8 NOT NULL,
  `email` varchar(255) character set utf8 NOT NULL,
  `login` varchar(255) character set utf8 NOT NULL,
  `pass` varchar(255) character set utf8 NOT NULL,
  `actif` varchar(10) character set utf8 NOT NULL,
  `debut` datetime NOT NULL,
  `fin` datetime NOT NULL,
  `duree` varchar(255) character set utf8 NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

 `users` VALUES('azoulay', 'lionel', '[email protected]', 'lionel', 'lionel', '1', '0000-00-00 00:00:00', '0000-00-00 00:00:00', '12');
J'aimerais que lorsque "lionel" se logue se mette a jour le debut et la fin en fonction de la duree
ex: debut=now() fin=debut+duree (en l'occurence 12 heures)
et que l'acces a la page soit autorise tant que la date de fin n'est pas depassee.

du style :
lors du login on verifie la date de fin
Si egale a zero on la met a jour (debut + duree) et on donne acces a la page jusqu'a "fin"
si plus grand que zero mais plus petit que now() on donne acces a la page jusqu'a "fin"
si plus grand que zero et plus grand que now() on donne pas acces a la page.

voila le principe mais aucune idee de la syntaxe :oops: :oops:

Si quelqu'un peut m'aider se serait cool....

Merci