1. #1
    Nouveau membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    novembre 2002
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : novembre 2002
    Messages : 31
    Points : 32
    Points
    32

    Par défaut Module Authentification/Inscription : Fatal Error

    Bsr
    Lors de l'utilisation de la derniere verison j'ai voulu faire un module simple avec connexion et inscription. Cela avait fonctionné avec la version précédente sans soucis.
    Là j'ai comme retour :
    Fatal error: Call to undefined method business_auth::registerNewAccount() in C:\wamp64\www\mkframework\data\genere\ityquery2\module\private\auth\main.php on line 62
    avec
    Call Stack
    # Time Memory Function Location
    1 0.0021 264296 {main}( ) ...\index.php:0
    2 0.0048 502896 _root->run( ) ...\index.php:56
    3 0.0156 779512 module_private_auth->_inscription( ) ...\class_root.php:264
    4 0.0156 779728 module_private_auth->processInscription( ) ...\main.php:42

    Le fichier auth\main.php a été généré par MK
    Code : 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
    76
    <?php
    
    class module_private_auth extends module_private {
    
    	protected $_sModulePath = 'private/auth';
    
    	public function getView($sView_) {
    		return new _view($this->_sModulePath . '::' . $sView_);
    	}
    
    	public function _login() {
    
    		$sMessage = $this->checkLoginPass();
    
    		$oView = $this->getView('login');
    		$oView->sError = $sMessage;
    
    		$this->oLayout->add('main', $oView);
    	}
    
    	private function checkLoginPass() {
    		//if form is not sent, we stop there
    		if (!_root::getRequest()->isPost()) {
    			return null;
    		}
    
    		$sLogin = _root::getParam('login');
    		$sPassword = _root::getParam('password');
    
    
    		$oBusinessAuth = new business_auth(model_auth::getInstance(), _root::getAuth(), _root::getI18n() );
    		if (false === $oBusinessAuth->checkCredentials($sLogin, $sPassword)) {
    
    			return $oBusinessAuth->getReturn()->getData('error');
    		}
    
    
    		_root::redirect('global_default::index');
    	}
    
    	public function _inscription() {
    		$tMessage = $this->processInscription();
    
    		$oView = $this->getView('inscription');
    		$oView->tMessage = $tMessage;
    
    		$oView->oUser = new row_auth;
    
    		$this->oLayout->add('main', $oView);
    	}
    
    	private function processInscription() {
    		if (!_root::getRequest()->isPost()) {
    			return null;
    		}
    
    		$sLogin = _root::getParam('username');
    		$sPassword = _root::getParam('password');
    		$sPassword2 = _root::getParam('passwordConfirm');
    
    		$oBusinessAuth = new business_auth(model_auth::getInstance(), _root::getAuth(), _root::getI18n() );
    		if (false === $oBusinessAuth->registerNewAccount(new row_auth, $sLogin, $sPassword, $sPassword2)) {
    
    			return $oBusinessAuth->getReturn()->getData('tError');
    		}
    
    		return array('success' => array(tr('compteCreeAvecSucces')));
    	}
    
    	public function _logout() {
    		_root::getAuth()->logout();
    	}
    
    
    }
    J'ai également hâte de voir comment utiliser la nouvelle version :-)

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    4 761
    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 761
    Points : 18 459
    Points
    18 459
    Billets dans le blog
    17

    Par défaut

    Je viens de tester avec la mkframework_v4_130_0_r326, et autant j'ai une erreur après l'inscript (que je vais corriger)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Array to string conversion
    #0 /var/www/html/mkframework_v4_130_0_r326/data/genere/appliSc/plugin/sc/plugin_sc_form.php(119): exception_error_handler(8, 'Array to string...', '/var/www/html/m...', 119, Array)
    Autant après je peux me connecter malgré le message avec le compte créé

    Vous pouvez verifier la classe business ? elle ne contient pas la méthode registerNewAccount ?
    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
    Nouveau membre du Club
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    novembre 2002
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : novembre 2002
    Messages : 31
    Points : 32
    Points
    32

    Par défaut

    J'ai les 2 sources suivants dans data/genere/projet/business

    business_abstract.php
    Code : 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
    <?php
    class business_abstract {
    
    	protected $oReturn;
    
    	public function sendReturn($bStatus, $tData = null) {
    		$this->oReturn=new business_return($bStatus, $tData);
    		return $bStatus;
    	}
    	public function getReturn(){
    		return $this->oReturn;
    	}
    
    	public function __get($name) {
    		throw new Exception('property ' . $name . ' unknown');
    	}
    
    }
    
    class business_return {
    
    	private $bStatus = null;
    	private $tData = null;
    
    	public function __construct($bStatus, $tData) {
    		$this->bStatus = $bStatus;
    		$this->tData = $tData;
    	}
    
    	public function getStatus() {
    		return $this->bStatus;
    	}
    
    	public function getData($sVar, $default = null) {
    		if (isset($this->tData[$sVar])) {
    			return $this->tData[$sVar];
    		} else {
    			return $default;
    		}
    	}
    
    	public function getAllData() {
    		return $this->tData;
    	}
    
    	public function setData($sVar, $uValue) {
    		return $this->tData[$sVar] = $uValue;
    	}
    
    }
    business_auth.php
    Code : 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
    <?php
    
    class business_auth extends business_abstract {
    
    	protected $_oModel;
    	protected $_oAuth;
    	protected $_oI18n;
    //maximum lenght for password
    	protected $_iMaxPasswordLength = 100;
    
    	public function __construct(interface_businessAuthModelUser $oModel_, interface_auth $oAuth_, interface_i18n $oI18n_ ){
    		$this->_oModel = $oModel_;
    		$this->_oAuth = $oAuth_;
    		$this->_oI18n=$oI18n_;
    	}
    
    	public function tr($sTag_){
    		return $this->_oI18n->tr($sTag_);
    	}
    
    	public function checkCredentials($sLogin_, $sPassword_) {
    		if (strlen($sPassword_) > $this->_iMaxPasswordLength) {
    			return $this->sendReturn(false, array('error' => $this->tr('passwordTooLong')) );
    		}
    //we store password hashed in class model_exampleToReplace
    		$sPasswordHashed = $this->_oModel->hashPassword($sPassword_);
    		$tAccount = $this->_oModel->getListAccount();
    
    //we check that we find in array returned by model class
    //entry $tAccount[ login ][ hashed password ]
    		if (isset($tAccount[$sLogin_][$sPasswordHashed])) {
    			$this->_oAuth->_connect();
    			$this->_oAuth->setAccount($tAccount[$sLogin_][$sPasswordHashed]);
    
    			return $this->sendReturn(true);
    		} else {
    			return $this->sendReturn(false, array('error' => $this->tr('badCredentials')) );
    		}
    
    
    		return $this->sendReturn(true);
    	}
    }

  4. #4
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    4 761
    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 761
    Points : 18 459
    Points
    18 459
    Billets dans le blog
    17

    Par défaut

    Comme discuté par mail
    vous avez généré deux fois le module authentification: une fois sans inscription et la seconde avec inscription

    mais le builder n'écrase pas les fichiers déjà présents, vous avez donc la la classe business du module d'authentification sans inscription
    je vous invite à supprimer ce fichier et regénéré le module auth + inscription

    note: il y a un bug sur le nouveau plugin plugin_sc_form, je proposerai ce soir un correctif.
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/01/2014, 13h55
  2. Fatal error sur la création d'un module ezpublish
    Par sfarouk dans le forum eZ Publish
    Réponses: 2
    Dernier message: 09/08/2012, 10h07
  3. Réponses: 17
    Dernier message: 28/07/2005, 08h20
  4. Fatal Error : OpenGL GLX extension not support
    Par kacedda dans le forum GLUT
    Réponses: 5
    Dernier message: 06/06/2005, 10h28
  5. class php5 - Fatal error: main() [function.main]
    Par tom261285 dans le forum Sessions
    Réponses: 3
    Dernier message: 21/01/2005, 14h41

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