Bonsoir,
Quelqu'un aurait une idée d'amélioration pour mon script qui est sensé envoyez une alert si on dépasse le nombre d'éssai d'un formulaire.
ça fonctionne sauf que l'heure retournée n'est pas la bonne
On stock dans la session :
if(empty($_SESSION['login_fail'])){
$_SESSION['login_fail'] = 1;
$_SESSION['login_time'] = time()+ 60 * 3;
}else{
$_SESSION['login_fail']++;
}
Si compteur dépasser :
if(!empty($_SESSION['login_time']) && $_SESSION['login_time'] < time()){
unset($_SESSION['login_fail']);
unset($_SESSION['login_time']);
}
if(!empty($_SESSION['login_fail']) && $_SESSION['login_fail'] >= 2){
$error = errors(['Vous avez entré de mauvais identifiants 10 fois de suite il vous faut attendre '. date('H\hi',$_SESSION['login_time']) .' pour réessayer']);
}
Je viens de tester a 2:05 il me dit d'attendre jusque 1h05 pour réassayez.
Cela dit ça fais bien ce que je veut, sauf l'heur qui n'est pas bonne.
Une idée ?
Merci.
Bonsoir,
As-tu vérifier la time zone dans les config de wamp ? Car si tu as fais une mise à jour, elle a pu changer.
Bonjour,
Si tu fais un
date('H\hi',time());
Il te met la bonne heure? Si non c'est que tu as un soucis de timezone.
Salut,
Tu utilises time qui renvoie l'heure du serveur, tu es en local pour faire ton teste ? Si tu le fais sur un serveur, il peut très bien ne pas être en France et donc avoir un décalage d'heure.
galyb
Oui je le fais en local au départ j'avais bien les bonne dates je pense que c'est au niveau de la nouvel version de wamp car je voulais tester mon code sur PHP7
eltharin
Pas trop compris je dois implémenter la session des tentative rater pour le login et bloquer si ça spam.
je fais ça pour afficher l'alert
if(!empty($_SESSION['login_fail']) && $_SESSION['login_fail'] >= 2){
$error = errors(['Vous avez entré de mauvais identifiants un trop grand nombres de fois il vous faut attendre '. date('H\hi',$_SESSION['login_time']) .' pour réessayer']);
}
et c'est la que l'heure est mauvaise
le debug me donne ça
'login_fail' => int 2
'login_time' => int 1510859115
J'ai mis ça date.timezone = "Europe/Paris"
c'étais en UTC le UTC+2 me flinguer toutes mes date sur mes req.
ça a l'aire de fonctionner.
Petite info pour ceux qui cherche :
dans le php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone ="Europe/Paris"