Page 1 sur 1

limite l'acces a temps donne

Posté : 08 févr. 2011, 16:39
par aprods
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

Re: limite l'acces a temps donne

Posté : 08 févr. 2011, 17:16
par xTG
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.

Re: limite l'acces a temps donne

Posté : 08 févr. 2011, 17:19
par aprods
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

Posté : 08 févr. 2011, 17:30
par xTG
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;
}