1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2004
    Messages
    1 337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2004
    Messages : 1 337
    Points : 742
    Points
    742

    Par défaut Exemple Mise en place de Politique d'Authentification

    Bonjour Imikado

    Sur le site il j'ai lu dans les bonnes pratiques les elements ci dessous que j'aimerais mettre en place au niveau de mon application :

    Gérer une politique de mauvaise authentification
    - ajouter un Captcha en cas d'erreur, qui limitera les robots de "brute force"
    - bloquer totalement un compte au bout d'un nombre d'authentification infructueuse
    Pourrai je savoir un exemple ou une tuto pour la mise en place concrète ?

    Merci

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    4 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 4 821
    Points : 18 587
    Points
    18 587
    Billets dans le blog
    17

    Par défaut

    Bonne idée, je vais essayer d'en concocter un dans la soirée
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    4 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 4 821
    Points : 18 587
    Points
    18 587
    Billets dans le blog
    17

    Par défaut

    Mini tutorial ajouté pour la notion de bloquage
    http://mkframework.com/tutoriaux.html#auth2b

    je verrais plus tard pour le captcha, il faudrait en ajouter un sur le framework, ou faire appel à un service/blibliothèque externe (par exemple http://www.captcha.net/)
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2004
    Messages
    1 337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2004
    Messages : 1 337
    Points : 742
    Points
    742

    Par défaut

    Bonjour Imikado

    En me plongeant dans la documentation je suis tombé sur deux liens :
    La documentation de google Recaptcha https://developers.google.com/recaptcha/docs/display
    Ensuite la doc sur l'utilisation d'une API https://github.com/google/recaptcha

    j'ai donc essayer d’implémenter tout ce ceci mais j'ai message d'erreur :

    Voici le code de la vue login du module Auth modifié :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <?php
    require('reca/autoload.php');;
    $siteKey = ''; // ma clé site delivrée par google
    $secret =''; // ma clé privée deliveé par google
    ?>
     <html>
      <head>
        <title></title>
         <script src="https://www.google.com/recaptcha/api.js" async defer></script>
      </head>
     <body>
    <?php 
        $recaptcha = new \ReCaptcha\ReCaptcha($secret);
    
        if(isset($_POST["g-recaptcha-response"])) 
         {
    $resp = $reCaptcha->verify($_SERVER["REMOTE_ADDR"],$_POST["g-recaptcha-response"]);
    
       if ($resp != null && $resp->success) 
    
       {
    	echo "CAPTCHA OK";
        }
         else {
    	echo "CAPTCHA incorrect";
    	}
      }
    ?>   
    
         <div class="moncadre">    
            <div class="row">
            <div class="col-xs-12 col-sm-6 col-sm-offset-1">
         
                <form action="" method="POST"  class="form-signin" role="form">
    				
    				<div class="g-recaptcha" data-sitekey="<?php echo $siteKey; ?>"></div> 
    				
    				<h2 class="form-signin-heading">BIENVENU(E) Identifiez - Vous !</h2>
    				
    				<div class="form-group">
                    <div class="col-md-7"><input name="login" placeholder="Idenfiant" class="form-control" type="text" id="login"/></div>
                    </div>              
                    
                    
                    <div class="form-group">
                    <div class="col-md-7"><input name="password" placeholder="Mot de passe" class="form-control" type="password" id="password"/></div>
                    </div> 
                   
                    <div class="form-group">
                    <div class="col-md-offset-0 col-md-7"><input type="submit" value="Se connecter"  class="btn btn-lg btn-primary btn-block"/> <a class="btn btn-link" href="<?php echo _root::getLink('auth::inscription')?>">S'inscrire</a></p></div>
                    </div>
                    
                <?php if($this->sError!=''):?>
    		    <p style="color:red"><?php echo $this->sError?></p>
    	        <?php endif;?>
    	        
    	        
    	        
                </form>
                <div class="col-xs-12 col-sm-6 col-sm-offset-1">
                <p class="credits">Powered BY : <a href="http://www.monsite.com" target="_blank">devalender-Rusta</a>.</p>
                </div>
            
        </div>
    </div>
    </div>
    
    
     </body>
    </html>

    lors du clique sur Se connecter voici le message d'erreur :

    Undefined variable: reCaptcha
    Merci de m'aiguiller et merci pour la tuto !

  5. #5
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    4 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 4 821
    Points : 18 587
    Points
    18 587
    Billets dans le blog
    17

    Par défaut

    Il y a une erreur de casse
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $recaptcha = new \ReCaptcha\ReCaptcha($secret);
     
        if(isset($_POST["g-recaptcha-response"])) 
         {
    $resp = $reCaptcha->verify($_SERVER["REMOTE_ADDR"],$_POST["g-recaptcha-response"]);

    vs
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2004
    Messages
    1 337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2004
    Messages : 1 337
    Points : 742
    Points
    742

    Par défaut

    je viens de corriger par rapport au captcha je nai plus d'erreur ! par contre j'en ai une au niveau du code sur le site :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    //////////////////////////////////////////////////// Gestion pour blocage de compte
    		//AJOUT: verification si le compte est bloque
           if(isset($tAccount[$sLogin]) ){
     
               list($sAccountHashPassword, $oAccountFound) = each($tAccount[$sLogin]);
               if($oAccountFound->nbFail > 3){
                   return 'Compte bloquee';
               }
     
           }
     
           if(!_root::getAuth()->checkLoginPass($tAccount,$sLogin,$sHashPassword)){
     
               //AJOUT: on incremente le nombre d'erreur
               $oAccountFound->nbFail=(int)$oAccountFound->nbFail+1;
               $oAccountFound->save();
               return 'Mauvais login/mot de passe';
           }else{
               //AJOUT: on peut annuler le nombre de tentatives manquees
               //quand elles sont superieur a 0 si l'utilisateur entre ses bons identifiants
               if($oAccountFound->nbFail > 0 ){
                   $oAccountFound->nbFail=0;
                   $oAccountFound->save();
               }
           }
    		////////////////////////////////////////////////////////////////////////////////////////////////////

    Code erreur !

    Undefined variable: tAccount

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2004
    Messages
    1 337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2004
    Messages : 1 337
    Points : 742
    Points
    742

    Par défaut

    Apparemment j'avais mal copier le code ! je n'ai plus de message d'erreur mais je continu mes tests.

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2004
    Messages
    1 337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2004
    Messages : 1 337
    Points : 742
    Points
    742

    Par défaut

    Après mes tests je crois que j'ai mal implémenté mon mécanisme de captcha en effet :

    1- Quand je rentre mon login et mot de passe sans validé le captcha je me retrouve sur la page principale de mon application !
    2- Quand le mot de passe est mauvais nbFail est bien incrémenté mais en cliquant sur le bouton "se connecter" sans toute fois valider le captcha quelque seconde a près j'ai le message d'erreur ci dessous

    Fatal error: Cannot access private property ReCaptcha\Response::$success in C:\wamp64\www\mkframework\data\genere\connect\module\auth\view\login.php on line 19
    je pense que j'ai raté un truc parce que le captcha devrai en principe réagir au fait qu'il ne soit pas validé quand on clique sur le bonton "se connecter" !

  9. #9
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    4 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 4 821
    Points : 18 587
    Points
    18 587
    Billets dans le blog
    17

    Par défaut

    Pouvez-vous poster le code utilisé (en masquant votre clef google)
    pour que je vous aide ?
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  10. #10
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2004
    Messages
    1 337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2004
    Messages : 1 337
    Points : 742
    Points
    742

    Par défaut

    Bonsoir Imikado

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    <?php
    require('reca/autoload.php');;
    $siteKey = 'xxxxxx'; // ma clé site delivrée par google
    $secret ='xxxx'; // ma clé privée deliveé par google
    ?>
     <html>
      <head>
        <title></title>
         <script src="https://www.google.com/recaptcha/api.js" async defer></script>
      </head>
     <body>
    <?php 
        $recaptcha = new \ReCaptcha\ReCaptcha($secret);
     
        if(isset($_POST["g-recaptcha-response"])) 
         {
    $resp = $recaptcha->verify($_SERVER["REMOTE_ADDR"],$_POST["g-recaptcha-response"]);
     
       if ($resp != null && $resp->success) 
     
       {
    	echo "CAPTCHA OK";
        }
         else {
    	echo "CAPTCHA incorrect";
    	}
      }
    ?>   
     
         <div class="moncadre">    
            <div class="row">
            <div class="col-xs-12 col-sm-6 col-sm-offset-1">
     
                <form action="" method="POST"  class="form-signin" role="form">
     
    				<div class="g-recaptcha" data-sitekey="<?php echo $siteKey; ?>"></div> 
     
    				<h2 class="form-signin-heading">BIENVENU(E) Identifiez - Vous !</h2>
     
    				<div class="form-group">
                    <div class="col-md-7"><input name="login" placeholder="Idenfiant" class="form-control" type="text" required="required" id="login"/></div>
                    </div>              
     
     
                    <div class="form-group">
                    <div class="col-md-7"><input name="password" placeholder="Mot de passe" class="form-control" type="password" required="required" id="password"/></div>
                    </div> 
     
                    <div class="form-group">
                    <div class="col-md-offset-0 col-md-7"><input type="submit" value="Se connecter"  class="btn btn-lg btn-primary btn-block"/> <a class="btn btn-link" href="<?php echo _root::getLink('auth::inscription')?>">S'inscrire</a></p></div>
                    </div>
     
                <?php if($this->sError!=''):?>
    		    <p style="color:red"><?php echo $this->sError?></p>
    	        <?php endif;?>
     
     
     
                </form>
                <div class="col-xs-12 col-sm-6 col-sm-offset-1">
                <p class="credits">Powered BY : <a href="http://www.monsite.com" target="_blank">devalender-Rusta</a>.</p>
                </div>
     
        </div>
    </div>
    </div>
     
     
     </body>
    </html>

    function checkLoginPass()
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    private function checkLoginPass(){
    		//si le formulaire n'est pas envoye on s'arrete la
    		if(!_root::getRequest()->isPost() ){
    			return null;
    		}
     
    		$sLogin=_root::getParam('login');
    		$sPassword=_root::getParam('password');
     
    		if(strlen($sPassword) > $this->maxPasswordLength){
    			return 'Mot de passe trop long';
    		}
     
     
    		//on stoque les mots de passe hashe dans la classe model_utilisateurs
    		$sHashPassword=model_utilisateurs::getInstance()->hashPassword($sPassword);
    		$tAccount=model_utilisateurs::getInstance()->getListAccount();
     
    		//////////////////////////////////////////////////// Gestion pour blocage de compte
     
    		//AJOUT: verification si le compte est bloque
                  if(isset($tAccount[$sLogin]) ){
     
               list($sAccountHashPassword, $oAccountFound) = each($tAccount[$sLogin]);
               if($oAccountFound->nbFail > 3){
                   return 'Compte bloquee';
               }
     
           }
     
           if(!_root::getAuth()->checkLoginPass($tAccount,$sLogin,$sHashPassword)){
     
               //AJOUT: on incremente le nombre d'erreur
               $oAccountFound->nbFail=(int)$oAccountFound->nbFail+1;
               $oAccountFound->save();
               return 'Mauvais login/mot de passe';
           }else{
               //AJOUT: on peut annuler le nombre de tentatives manquees
               //quand elles sont superieur a 0 si l'utilisateur entre ses bons identifiants
               if($oAccountFound->nbFail > 0 ){
                   $oAccountFound->nbFail=0;
                   $oAccountFound->save();
               }
           }
    		////////////////////////////////////////////////////////////////////////////////////////////////////
     
    		//on va verifier que l'on trouve dans le tableau retourne par notre model
    		//l'entree $tAccount[ login ][ mot de passe hashe ]
    		if(!_root::getAuth()->checkLoginPass($tAccount,$sLogin,$sHashPassword)){
    			return 'Mauvais login/mot de passe';
    		}
    		$oUser=_root::getAuth()->getAccount();
            model_rightsManager::getInstance()->loadForUser($oUser);
            //_root::redirect('privatemodule_action');
     
            //TRACAGE DU USER CONNECTE
            $sMonaction="Vient de se connecter à la page Acceuil!";
            $this->mytraceuser($sLogin,$sMonaction);
            _root::redirect('default::index');
     
    	}

    Merci !

  11. #11
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    4 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 4 821
    Points : 18 587
    Points
    18 587
    Billets dans le blog
    17

    Par défaut

    il ne faut pas melanger vue et module

    tout doit etre ici dans le module, j'ai modifié votre méthode pour inclure la verification captcha
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    private function checkLoginPass(){
    	//si le formulaire n'est pas envoye on s'arrete la
    	if(!_root::getRequest()->isPost() ){
    		return null;
    	}
     
    	$sLogin=_root::getParam('login');
    	$sPassword=_root::getParam('password');
     
    	if(strlen($sPassword) > $this->maxPasswordLength){
    		return 'Mot de passe trop long';
    	}
     
     
    	//on stoque les mots de passe hashe dans la classe model_utilisateurs
    	$sHashPassword=model_utilisateurs::getInstance()->hashPassword($sPassword);
    	$tAccount=model_utilisateurs::getInstance()->getListAccount();
     
    	//////////////////////////////////////////////////// Gestion pour blocage de compte
    	//ajout check captha au debut
    	require('reca/autoload.php');;
    	$siteKey = 'xxxxxx'; // ma clé site delivrée par google
    	$secret ='xxxx'; // ma clé privée deliveé par google
     
    	$recaptcha = new \ReCaptcha\ReCaptcha($secret);
     
    	if(isset($_POST["g-recaptcha-response"]) ) {
    		$resp = $recaptcha->verify($_SERVER["REMOTE_ADDR"],$_POST["g-recaptcha-response"]);
     
    		if ($resp != null && $resp->success) {
    			//captcha ok, on continue
    		}else {
    			return "CAPTCHA incorrect";
    		}
    	}
     
     
    	//AJOUT: verification si le compte est bloque
    	if(isset($tAccount[$sLogin]) ){
     
    		list($sAccountHashPassword, $oAccountFound) = each($tAccount[$sLogin]);
    		if($oAccountFound->nbFail > 3){
    			return 'Compte bloquee';
    		}
     
    	}
     
    	if(!_root::getAuth()->checkLoginPass($tAccount,$sLogin,$sHashPassword)){
     
    		//AJOUT: on incremente le nombre d'erreur
    		$oAccountFound->nbFail=(int)$oAccountFound->nbFail+1;
    		$oAccountFound->save();
    		return 'Mauvais login/mot de passe';
    	}else{
    		//AJOUT: on peut annuler le nombre de tentatives manquees
    		//quand elles sont superieur a 0 si l'utilisateur entre ses bons identifiants
    		if($oAccountFound->nbFail > 0 ){
    			$oAccountFound->nbFail=0;
    			$oAccountFound->save();
    		}
    	}
    	////////////////////////////////////////////////////////////////////////////////////////////////////
     
     
    	$oUser=_root::getAuth()->getAccount();
            model_rightsManager::getInstance()->loadForUser($oUser);
            //_root::redirect('privatemodule_action');
     
            //TRACAGE DU USER CONNECTE
            $sMonaction="Vient de se connecter à la page Acceuil!";
            $this->mytraceuser($sLogin,$sMonaction);
            _root::redirect('default::index');
     
    }

    et la vue "nettoyée" de la partie captcha déplacée dans le code du module
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    <?php
    $siteKey = 'xxxxxx'; // ma clé site delivrée par google
    $secret ='xxxx'; // ma clé privée deliveé par google
    ?>
     <html>
      <head>
        <title></title>
         <script src="https://www.google.com/recaptcha/api.js" async defer></script>
      </head>
     <body>
     
         <div class="moncadre">    
            <div class="row">
            <div class="col-xs-12 col-sm-6 col-sm-offset-1">
     
                <form action="" method="POST"  class="form-signin" role="form">
     
    				<div class="g-recaptcha" data-sitekey="<?php echo $siteKey; ?>"></div> 
     
    				<h2 class="form-signin-heading">BIENVENU(E) Identifiez - Vous !</h2>
     
    				<div class="form-group">
                    <div class="col-md-7"><input name="login" placeholder="Idenfiant" class="form-control" type="text" required="required" id="login"/></div>
                    </div>              
     
     
                    <div class="form-group">
                    <div class="col-md-7"><input name="password" placeholder="Mot de passe" class="form-control" type="password" required="required" id="password"/></div>
                    </div> 
     
                    <div class="form-group">
                    <div class="col-md-offset-0 col-md-7"><input type="submit" value="Se connecter"  class="btn btn-lg btn-primary btn-block"/> <a class="btn btn-link" href="<?php echo _root::getLink('auth::inscription')?>">S'inscrire</a></p></div>
                    </div>
     
                <?php if($this->sError!=''):?>
    		    <p style="color:red"><?php echo $this->sError?></p>
    	        <?php endif;?>
     
     
     
                </form>
                <div class="col-xs-12 col-sm-6 col-sm-offset-1">
                <p class="credits">Powered BY : <a href="http://www.monsite.com" target="_blank">devalender-Rusta</a>.</p>
                </div>
     
        </div>
    </div>
    </div>
     
     
     </body>
    </html>
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  12. #12
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2004
    Messages
    1 337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2004
    Messages : 1 337
    Points : 742
    Points
    742

    Par défaut

    Bonjour Imikado

    Citation Envoyé par imikado Voir le message
    il ne faut pas melanger vue et module
    tout doit etre ici dans le module, j'ai modifié votre méthode pour inclure la verification captcha
    Je pense que c'est un de mes problèmes ! je reprend tout et je fais compte rendu.

    Merci

Discussions similaires

  1. Mise en place Authentification Windows
    Par Ludo.G dans le forum ASP.NET
    Réponses: 3
    Dernier message: 02/07/2008, 18h29
  2. exemple de conception et mise en place
    Par h_ismaili dans le forum Conception/Modélisation
    Réponses: 2
    Dernier message: 22/04/2008, 15h54
  3. [Htaccess] Mise en place authentification
    Par CYCLOPE91440 dans le forum Apache
    Réponses: 2
    Dernier message: 11/03/2007, 19h17
  4. [RMI] Exemple simple de mise en place
    Par Marc90 dans le forum APIs
    Réponses: 8
    Dernier message: 31/05/2006, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo