Résolu Code de tentative de connexion

Sagasaga

Premium
Inscription
29 Novembre 2013
Messages
795
Réactions
277
Points
4 211
RGCoins
25
Bonjour,
J'aurait aimé avoir un avis sur mon code de tentative ;) le voici :
PHP:
   /**
    **
    ** Système de tentative
    **
    **/
    if(!empty($errors)){
        $nbs = 5; //nombre de tentative
        $delay = 600;

        /**
        ** On vérifie si des tentatives on déjà était testé
        **/
        if(!isset($_SESSION['tentative'])){
            //On initialise la $_SESSION tentative
            $_SESSION['tentative'] = 1;
            $errors['tentative'] = "Il vous reste " . ($nbs-$_SESSION['tentative']) . " tentative";
        }else{
            //On créer une mini boucle
            if($_SESSION['tentative'] < $nbs-1){
                //On créer une Session time avec 10minutes en plus
                $_SESSION['time'] = time()+$delay;
                $_SESSION['tentative']++;
                $errors['tentative'] = "Il vous reste " . ($nbs-$_SESSION['tentative']) . " tentative";
            }else{
                //Le nombre d'essaie maximum a était réaliser il doit revenir dans 10minutes
                $_SESSION['tentative'] = $nbs;
                $errors['tentative'] = "Il vous reste " . ($nbs-$_SESSION['tentative']) . " tentative, revenez dans ". date('i:s', round(($_SESSION['time']-time()), 2)) ." minutes";
                if(time() >= $_SESSION['time']){
                    unset($_SESSION['time']);
                    unset($_SESSION['tentative']);
                }
            }
        }
    }
 
Heu oue facilement contournable pourquoi dans ta base de donnes ou y'a les log users mdp tu fait pas un autre champs et tu check celui ci car le mec est sur tor il refresh est il a tentative illimité
 
Heu oue facilement contournable pourquoi dans ta base de donnes ou y'a les log users mdp tu fait pas un autre champs et tu check celui ci car le mec est sur tor il refresh est il a tentative illimité

Justement c'est un code de tentative de connection donc il n'y a aucune info avec la db qui doit traité ! Ce pendant les $_SESSION te permettent de ne pas perdre de donné lors d'un refresh donc aucune tentative illimité ;) Si tu veut essayer : rentre un faux couple pseudo mdp ;) ! Si tu veut test la connections tu as le compte pseudo : test mdp : test

Puis mettre tu peux mette if{ton premier code}elseif(session tentative-nbs){ton code)else{le dernier Code }
C'est à dire c'est tous le système la sauf pour $errors[] = "" qui est un tableau qui renvoies les erreurs que j'affiche ensuite en HTML ;) !
 
Justement c'est un code de tentative de connection donc il n'y a aucune info avec la db qui doit traité ! Ce pendant les $_SESSION te permettent de ne pas perdre de donné lors d'un refresh donc aucune tentative illimité ;) Si tu veut essayer : rentre un faux couple pseudo mdp ;) ! Si tu veut test la connections tu as le compte pseudo : test mdp : test
TOR ou navigation privé, je peux le faire en illimité
C'est à dire c'est tous le système la sauf pour $errors[] = "" qui est un tableau qui renvoies les erreurs que j'affiche ensuite en HTML ;) !
Puis y'a largement plus simple

PHP:
   function tentative(){
      $nbs = 5; 
    $delay = 600;
    if(!empty($errors)){return 'Message erreur';}
    if(empty($_SESSION['time']) OR $_SESSION['time'] > time() + $delay ){$_SESSION['time'] = time();} // On check le temps si il est plus grand ou il existe pas
    if($_SESSION['tentative'] >= $nbs AND $_SESSION['time'] > time()+$delay){return 'Revenez dans X temps';} //Si c'est egal a $bbs et le temps est plus grand alors erreur
    $_SESSION['tentative']++;
    return 'il vous reste '.$nbs-$_SESSION['tentative'].' tentatives';
}
Je pense que c'est bon comme ça x)

Mais ton code est bon mais ultra long quoi x)
 
TOR ou navigation privé, je peux le faire en illimité

Puis y'a largement plus simple

PHP:
   function tentative(){
      $nbs = 5;
    $delay = 600;
    if(!empty($errors)){return 'Message erreur';}
    if(empty($_SESSION['time']) OR $_SESSION['time'] > time() + $delay ){$_SESSION['time'] = time();} // On check le temps si il est plus grand ou il existe pas
    if($_SESSION['tentative'] >= $nbs AND $_SESSION['time'] > time()+$delay){return 'Revenez dans X temps';} //Si c'est egal a $bbs et le temps est plus grand alors erreur
    $_SESSION['tentative']++;
    return 'il vous reste '.$nbs-$_SESSION['tentative'].' tentatives';
}
Je pense que c'est bon comme ça x)

Mais ton code est bon mais ultra long quoi x)
C'est presque le même code sauf que toi tu l'as simplifié car derrière y'a pas le reste du code et tu oublies de unset les deux $_SESSION ^^ Si j'enlève les commentaires est espace cela reviens presque au même, mais merci de ton avis quand même il est plus simple dans ton cas ^^'
 
C'est presque le même code sauf que toi tu l'as simplifié car derrière y'a pas le reste du code et tu oublies de unset les deux $_SESSION ^^ Si j'enlève les commentaires est espace cela reviens presque au même, mais merci de ton avis quand même il est plus simple dans ton cas ^^'
Après je code comme sa et sa prend moins de place toi, tu met des if {}else{} alors que moi je met directement if(!){return erreur;} j'ai pas besoin d'allais voir en bas pour voir bref c'est bizzare mais mieux je trouve ;)
 
Salut,
J'ai édité le titre de ta discussion pour que celle-ci soit plus compréhensible.

A l'avenir essaie de faire des titres plus longs et détaillés, plus le titre est long et détaillé, plus tu obtiendras de vues ainsi que des réponses .

Bonne fin de soirée,
Aigeane
 
Retour
Haut