bonjour à vous
cela fait 5 jours que je me forme à ce framework. en suivant le tuto 5 sur le module authentification
je me suis heuté un un probleme.j arrive à bien creer mon module d'authentification avec inscription .
j'inscris bel et bien un un user et le builder le hash et loge dans la BD, mais lorsque je veus m authentifier
pour etre rediriger vers la page par defaut je recois tjr le mm message d'ereur "mot de passe trop long" .
svp quel peut etre le PB.voici ma "table utilisateur" ds ma BD
"
--
-- Structure de la table `utilisateur`
--
CREATE TABLE `utilisateur` (
`id` int(11) NOT NULL auto_increment,
`login` varchar(50) NOT NULL,
`password` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Contenu de la table `utilisateur`
--
INSERT INTO `utilisateur` (`id`, `login`, `password`) VALUES
(4, 'login', 'b35545c396f1851f24177d5f422168');
"
et le "main" de mon module "Authentifier"
(C:\xampp\htdocs\mkframework_v4_125_3_r306\data\genere\Application\module\Authentifier\main.php)
"
<?php
class module_Authentifier extends abstract_module{
//longueur maximum du mot de passe
private $maxPasswordLength=100;
public function before(){
//on active l'authentification
_root::getAuth()->enable();
$this->oLayout=new _layout('template1');
}
public function _login(){
$sMessage=$this->checkLoginPass();
$oView=new _view('Authentifier::login');
$oView->sError=$sMessage;
$this->oLayout->add('main',$oView);
}
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_utilisateur
$sHashPassword=model_utilisateur::getInstance()->hashPassword($sPassword);
$tAccount=model_utilisateur::getInstance()->getListAccount();
//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';
}
_root::redirect('default::index');
}
public function _inscription(){
$tMessage=$this->processInscription();
$oView=new _view('Authentifier::inscription');
$oView->tMessage=$tMessage;
$oView->oUser=new row_utilisateur;
$this->oLayout->add('main',$oView);
}
private function processInscription(){
if(!_root::getRequest()->isPost()){
return null;
}
$tAccount=model_utilisateur::getInstance()->getListAccount();
$sLogin=_root::getParam('login');
$sPassword=_root::getParam('password');
if($sPassword!=_root::getParam('password2')){
return array('login'=>array('Les deux mots de passe doivent etre identiques'));
}elseif($sLogin==''){
return array('login'=>array('Vous devez remplir le nom d utilisateur'));
}elseif($sPassword==''){
return array('login'=>array('Vous devez remplir le mot de passe'));
}elseif(strlen($sPassword) > $this->maxPasswordLength){
return array('login'=>array('Mot de passe trop long'));
}elseif(isset($tAccount[$sLogin]) ){
return array('login'=>array('Utilisateur déjà existant'));
}
$oUtilisateur=new row_utilisateur;
$oUtilisateur->login=$sLogin;
$oUtilisateur->password=model_utilisateur::getInstance()->hashPassword($sPassword);
if($oUtilisateur->save()==false){
return $oUtilisateur->getListError();
}
return array('success'=>array('Votre compte a bien été créé'));
}
public function _logout(){
_root::getAuth()->logout();
}
public function after(){
$this->oLayout->show();
}
}
"
Partager