Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MkFramework Discussion :

Récupérer les infos d'un utilisateur connecté


Sujet :

MkFramework

  1. #1
    Membre régulier
    Récupérer les infos d'un utilisateur connecté
    Bonjour,

    Si l'utilisateur "toto" viens de se connecter, comment récupérer ses info qui lui sont propre? Par exemple sur une page je voudrais afficher son nom ou son statut.

    Ou par exemple, un élève qui se connecte ne peux voir que sa fiche d'évaluation et non celle des autres.

  2. #2
    Rédacteur

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    _root::getAuth()->getAccount()

    Ca recupere l'enregistrement du user (récupéré via le tableau de getListAccount()
    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
    Membre régulier
    J'en suis à mon 327 eme test pour pouvoir tirer le nom de l'utilisateur connecté je n'y parviens pas.
    Donc j'ai bien compris que ceci retourne un tableau des infos de l'utilisateur connecté

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    _root::getAuth()->getAccount()


    Comment extraire les infos?

    J'ai fait 15 tutos sur les tableaux php sans y parvenir.

  4. #4
    Rédacteur

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    _root::getAuth()->getAccount()

    Retourne l'objet de l'utilisateur connecté

    Lors de la connexion, on utilise la méthode getListAccount() qui retourne un tableau indexé par utilisateur/mot de passe d'objets utilisateur

    Pour afficher par exemple le nom
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    $oUser=_root::getAuth()->getAccount();
    print $oUser->nom;
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  5. #5
    Rédacteur

    Quand vous avez une variable non identifié
    un ptit coup de
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    var_dump($maVariable);


    Vous affichera le type de variable (string, objet...)
    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 régulier
    C'est ce que j'ai fait. Mais j'ai vue que c'était un tableau.
    Un peu compliqué je l'avoue. Alors j'ai fait plein de tests pour comprendre.

    C'est donc un "tableau indexé" . Je vais étudier ça de prêt pour comprendre.

    Je suis entrain de créer un module "monCompte" ou l'utilisateur pourra modifier son mot de passe et ses coordonnés.
    Par la suite je créerai un module qui affichera les évaluations de l'élève connecté.

    Gros programme donc.

    Je reviendrai par ici si j'ai besoin.

  7. #7
    Rédacteur

    Citation Envoyé par pitu69 Voir le message
    C'est ce que j'ai fait. Mais j'ai vue que c'était un tableau.
    Un peu compliqué je l'avoue. Alors j'ai fait plein de tests pour comprendre.

    C'est donc un "tableau indexé" . Je vais étudier ça de prêt pour comprendre.
    C'est pour la partie authentification, la partie qui vous interesse c'est qu'elle permet d'enregistrer en session l'objet "utilisateur" (c'est cet objet qui vous interesse)

    Citation Envoyé par pitu69 Voir le message

    Je suis entrain de créer un module "monCompte" ou l'utilisateur pourra modifier son mot de passe et ses coordonnés.
    Par la suite je créerai un module qui affichera les évaluations de l'élève connecté.

    Gros programme donc.

    Je reviendrai par ici si j'ai besoin.
    Bon courage pour la suite
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  8. #8
    Membre régulier
    Mon module 'monCompte fonctionne parfaitement. J'ai mis des droits en fonction de l'utilisateurs.

    ça commence à rentrer. C'est bon de prendre un peu d'altitude.

    Sur la fiche d'évaluation de l'élève je voudrais faire apparaitre le nom de sa classe suivit de l'année de session.
    Je pense faire une requête dans model_sessions
    SELECT *FROM sessions, classes, users
    WHERE sessions.id=classes.session_id
    AND users.classe_id=classes.id
    AND users.id=?

    Je pense faire une requête sur trois tables, mais est-ce qu'il est possible (ou plus simple) d'utiliser les fonctions $tJointModel...existantes?
    Comment faire dans ce cas. je sais le faire entre deux table mais trois?

  9. #9
    Rédacteur

    Vous pouvez simplement utiliser cette requête, ça ne pose pas de problème

    A vous de voir dans quel fichier modèle l'inscrire model_user semble pertinent
    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 régulier
    J'ai une erreur je la comprend mais je n'arrive pas à la résoudre.
    Dans model_users j'ai mis cette fonction
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public function findSessionById($eleveId){
    		return $this->findOne('SELECT sessions.nom FROM sessions, classes, users 
    								WHERE sessions.id=classes.session_id 
    								AND users.classe_id=classes.id 
    								AND users.id=?',$eleveId );
    	}



    Dans mesEval/main.php méthode list()
    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
    public function _list(){
     
    		$tEvaluations=model_evaluations::getInstance()->findAllByEleve(_root::getAuth()->getAccount()->id);
     
    		$oView=new _view('mesEval::list');
    		$oView->tEvaluations=$tEvaluations;
    		$oView->oSession=model_users::getInstance()->findSessionById(_root::getAuth()->getAccount()->id);
    		$oView->tJoinmodel_classes=model_classes::getInstance()->getSelect();
    		$oView->tJoinmodel_machines=model_machines::getInstance()->getSelect();
    		$oView->tJoinmodel_sessions=model_sessions::getInstance()->getSelect();		
    		$oView->tEvaluationIndexed=model_evaluations::getInstance()->findListIndexed();		
    		$oView->tProf=model_users::getInstance()->getSelectAllProfs();
     
     
            //ici
        	$oView->tMachines=model_machines::getInstance()->getSelectByAtelier(_root::getAuth()->getAccount()->id);
    		$oView->tNiveaux=model_niveaux::getInstance()->getSelect();
     
     
    		$this->oLayout->add('main',$oView);
    	}

    J'ai contrôlé la ligne 8 ->j'ai bien le nom de la session

    dans mon fichier list.php ligne 8 je veux récupérer ce nom j'ai
    <?php echo $oSession->nom ?>


    Mon message d'erreur
    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
    Undefined variable: oSession
    #0 /opt/lampp/htdocs/tests/mkframework/data/genere/secu04/module/mesEval/view/list.php(8): exception_error_handler(8, 'Undefined varia...', '/opt/lampp/htdo...', 8, Array)
    #1 /opt/lampp/htdocs/tests/mkframework/lib/framework/class_view.php(83): include('/opt/lampp/htdo...')
    #2 /opt/lampp/htdocs/tests/mkframework/lib/framework/class_layout.php(121): _view->show()
    #3 /opt/lampp/htdocs/tests/mkframework/data/genere/secu04/layout/template1.php(23): _layout->load('main')
    #4 /opt/lampp/htdocs/tests/mkframework/lib/framework/class_layout.php(108): include('/opt/lampp/htdo...')
    #5 /opt/lampp/htdocs/tests/mkframework/data/genere/secu04/module/mesEval/main.php(192): _layout->show()
    #6 /opt/lampp/htdocs/tests/mkframework/lib/framework/class_root.php(237): module_mesEval->after()
    #7 /opt/lampp/htdocs/tests/mkframework/data/genere/secu04/public/index.php(55): _root->run()
    #8 {main}
     
    Detail:
    #0 /opt/lampp/htdocs/tests/mkframework/data/genere/secu04/module/mesEval/view/list.php (8) 
    exception_error_handler( , 'Undefined variable: oSession' , '/opt/lampp/htdocs/tests/mkframework/data/genere/secu04/module/mesEval/view/list.php' , , Array ( [sClass] => plugin_tpl [oPluginHtml] => plugin_html Object ( ) ) ) 
    #1 /opt/lampp/htdocs/tests/mkframework/lib/framework/class_view.php (83) 
    include( '/opt/lampp/htdocs/tests/mkframework/data/genere/secu04/module/mesEval/view/list.php' ) 
    #2 /opt/lampp/htdocs/tests/mkframework/lib/framework/class_layout.php (121) 
    _view -> show( ) 
    #3 /opt/lampp/htdocs/tests/mkframework/data/genere/secu04/layout/template1.php (23) 
    _layout -> load( 'main' ) 
    #4 /opt/lampp/htdocs/tests/mkframework/lib/framework/class_layout.php (108) 
    include( '/opt/lampp/htdocs/tests/mkframework/data/genere/secu04/layout/template1.php' ) 
    #5 /opt/lampp/htdocs/tests/mkframework/data/genere/secu04/module/mesEval/main.php (192) 
    _layout -> show( ) 
    #6 /opt/lampp/htdocs/tests/mkframework/lib/framework/class_root.php (237) 
    module_mesEval -> after( ) 
    #7 /opt/lampp/htdocs/tests/mkframework/data/genere/secu04/public/index.php (55) 
    _root -> run( ) 
    #8 {main}

  11. #11
    Rédacteur

    Vous avez assigné la variable session à votre vue
    pour l'utiliser dans votre vue utilisez
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    <?php echo $this->oSession->nom ?>

    et non
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    <?php echo $oSession->nom ?>

    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 régulier
    J'avais déjà tester comme vous me conseillé mais j'ai toujours une erreur
    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
    Undefined variable: oSession
    #0 /opt/lampp/htdocs/tests/mkframework/data/genere/secu04/module/mesEval/view/list.php(8): exception_error_handler(8, 'Undefined varia...', '/opt/lampp/htdo...', 8, Array)
    #1 /opt/lampp/htdocs/tests/mkframework/lib/framework/class_view.php(83): include('/opt/lampp/htdo...')
    #2 /opt/lampp/htdocs/tests/mkframework/lib/framework/class_layout.php(121): _view->show()
    #3 /opt/lampp/htdocs/tests/mkframework/data/genere/secu04/layout/template1.php(23): _layout->load('main')
    #4 /opt/lampp/htdocs/tests/mkframework/lib/framework/class_layout.php(108): include('/opt/lampp/htdo...')
    #5 /opt/lampp/htdocs/tests/mkframework/data/genere/secu04/module/mesEval/main.php(192): _layout->show()
    #6 /opt/lampp/htdocs/tests/mkframework/lib/framework/class_root.php(237): module_mesEval->after()
    #7 /opt/lampp/htdocs/tests/mkframework/data/genere/secu04/public/index.php(55): _root->run()
    #8 {main}
     
    Detail:
    #0 /opt/lampp/htdocs/tests/mkframework/data/genere/secu04/module/mesEval/view/list.php (8) 
    exception_error_handler( , 'Undefined variable: oSession' , '/opt/lampp/htdocs/tests/mkframework/data/genere/secu04/module/mesEval/view/list.php' , , Array ( [sClass] => plugin_tpl [oPluginHtml] => plugin_html Object ( ) ) ) 
    #1 /opt/lampp/htdocs/tests/mkframework/lib/framework/class_view.php (83) 
    include( '/opt/lampp/htdocs/tests/mkframework/data/genere/secu04/module/mesEval/view/list.php' ) 
    #2 /opt/lampp/htdocs/tests/mkframework/lib/framework/class_layout.php (121) 
    _view -> show( ) 
    #3 /opt/lampp/htdocs/tests/mkframework/data/genere/secu04/layout/template1.php (23) 
    _layout -> load( 'main' ) 
    #4 /opt/lampp/htdocs/tests/mkframework/lib/framework/class_layout.php (108) 
    include( '/opt/lampp/htdocs/tests/mkframework/data/genere/secu04/layout/template1.php' ) 
    #5 /opt/lampp/htdocs/tests/mkframework/data/genere/secu04/module/mesEval/main.php (192) 
    _layout -> show( ) 
    #6 /opt/lampp/htdocs/tests/mkframework/lib/framework/class_root.php (237) 
    module_mesEval -> after( ) 
    #7 /opt/lampp/htdocs/tests/mkframework/data/genere/secu04/public/index.php (55) 
    _root -> run( ) 
    #8 {main}


    J'ai pourtant le sentiment que la variable est bel et bien défini dans la méthode list ()?

  13. #13
    Rédacteur

    Pouvez vous poster le code la methode _list et celui de la vue view/list.php ?

    Ce serait la ligne 8 du fichier module/mesEval/view/list.php qui pose problème
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  14. #14
    Membre régulier
    Plus haut je donnais tous ces codes : model_users, méthode list() de mesEval/main.php et enfin la vue du nom de la session dans view/ list.php

    Pour le list.php il n'était pas en entier le voilà
    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
    <?php 
    $oPluginHtml=new plugin_html; 
    ?>
     
    <div class="sousTitre">Contrôle par Machine et par Niveaux de 
    	<br /><?php echo _root::getAuth()->getAccount()->nom ?> de 
    	<?php echo $this->tJoinmodel_classes[_root::getAuth()->getAccount()->classe_id]?> 
    	sessions <?php echo $this->$oSession->nom ?>
    </div> 
     
    <?php foreach ($this->tMachines as $machine_id=>$machine_nom)<img src="images/smilies/icon_confused.gif" border="0" alt="" title=":?" class="inlineimg" />>
    <div class="ligne machine "><?php echo $machine_nom?>
    	<?php $eleve_user_id=_root::getAuth()->getAccount()->id;?>
        <table class="action">
        						<!-- on boucle sur les niveaux -->
        						<?php foreach($this->tNiveaux as $niveau_id => $label)<img src="images/smilies/icon_confused.gif" border="0" alt="" title=":?" class="inlineimg" />>
        								<?php $max=$niveau_id?>
        								<?php if($niveau_id==0) continue;?>
        							<tr>
        									<!-- si le niveau à été évalué, on affiche date + le nom du prof-->
        									<?php if(isset($this->tEvaluationIndexed[$eleve_user_id][$machine_id][$niveau_id]))<img src="images/smilies/icon_confused.gif" border="0" alt="" title=":?" class="inlineimg" />>
        									<?php $oEval=$this->tEvaluationIndexed[$eleve_user_id][$machine_id][$niveau_id]?>
        								<td><?php echo $label?></td>
        								<td> -> fait le <?php echo $oEval->date?> par <?php echo $oEval->prof_user_id?></td>
        									<!-- sinon on affiche formulaire pour valider ce niveau-->
        									<?php else<img src="images/smilies/icon_confused.gif" border="0" alt="" title=":?" class="inlineimg" />>
        								<td><?php echo $label?></td>
        								<td>Pas encore évalué</td>
        							</tr>
                                        <?php break;?>
                                        <?php endif;?>
        							<!-- fin de boucle sur les niveaux -->
        						<?php endforeach;?>
        					<!-- on boucle sur les niveaux restant s'il y en a-->
        					<?php foreach($this->tNiveaux as $niveau_id => $label)<img src="images/smilies/icon_confused.gif" border="0" alt="" title=":?" class="inlineimg" />>
        						<?php  if($niveau_id <= $max) continue;?>
        						<tr>
        							<!-- affiche le niveau -->
        							<td><?php echo $label?></td>
        							<td></td>
        						</tr>
        					<!-- fin boucle sur les niveaux restant -->
        					<?php endforeach;?>
     
        </table>
     
    </div>	
    <?php endforeach ?>
     
    <a href="<?php echo $this->getLink('mesEval::pdf')?>"><div class="button action">PDF</div></a>

  15. #15
    Rédacteur

    C'est ceci qui ne va pas
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    sessions <?php echo $this->$oSession->nom ?>

    il faut mettre (sans le signe $ à oSession )
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    sessions <?php echo $this->oSession->nom ?>
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  16. #16
    Membre régulier
    mais oui bien sur...

    Merci et a bientôt