Module de connexion - modif session, et puis ?

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Module de connexion - modif session, et puis ?

    Bonjour,

    je suis entrain de créer un composant avec un module de connexion spécifique, je recherche la fonction du framework joomla qui dirait : "connecter cet utilisateur"

    voici un code de test tout sale pour le moment de vérification des infos de login, avec une requête pour mettre à jour la session joomla, la passer en guest 0, ajouter userid et username, mais voilà, un problème se pose : une fois le code exécuté, je ne suis toujours pas connecté alors que la table session est bien modifiée, mais ca ne suffi pas visiblement à faire de ma session une connexion.

    Quelqu'un sait ce qu'il faut de plus svp ? Ou si il y a une fonction que je n'ai pas trouvé du genre JFactory::getSession()->connect($user_id) (comme dans mes reves)

    Merci d'avance si quelqu'un passe par là et voit de la lumière

    Code PHP:
    if(!empty(JRequest::getString('username''')) AND !empty(JRequest::getString('password'''))){

    $username JRequest::getString('username''');
    $db JFactory::getDBO();
    $db->setQuery('SELECT * FROM #__users WHERE username = "'.$username.'" ');
    $result $db->loadObject();

    if(!empty(
    $result)){
    if(
    JUserHelper::verifyPassword(JRequest::getString ('password'''), $result->password) == true){

    $query $db->getQuery(true);
    $fields = array(
    $db->quoteName('guest') . ' = ' $db->quote(0),
    $db->quoteName('userid') . ' = ' $db->quote($result->id),
    $db->quoteName('username') . ' = ' $db->quote($result->username)
    );
    $conditions = array(
    $db->quoteName('session_id') . ' = ' $db->quote(JFactory::getSession()->getId())
    );
    $query->update($db->quoteName('#__session'))->set($fields)->where($conditions);
    $db->setQuery($query);
    $result $db->execute();
    header('location:'.JUri::current());
    }
    else{
    echo 
    'mot de passe incorrect';
    }
    }
    else{
    echo 
    'L\'utilisateur n\'existe pas';
    }


    Dernière édition par Minie à 24/01/2021, 21h26

  • #2
    Ok, à chaque fois que j'écris en mode désespéré je trouve juste après ..

    voici la solution pour ceux que ca intéresse :
    Code PHP:
    $db JFactory::getDBO();
    $username JRequest::getString('email''');
    $password JRequest::getString('password''');

    if(!empty(
    $username) AND !empty($password)){

    $db->setQuery('SELECT * FROM #__users WHERE username = "'.$username.'" ');
    $result $db->loadObject();

    if(!empty(
    $result)){
    if(
    JUserHelper::verifyPassword(JRequest::getString ('password'''), $result->password) == true){
    $credentials = array( 'username' => $username'password' => $password);
    $login_site JFactory::getApplication('site');
    $login_site->login($credentials$options = array());
    }
    else{
    echo 
    'Mot de passe incorrect';
    }
    }


    Commentaire


    • #3
      Don't forget to use
      Code:
      $db->quoteName()
      Jean-Marie Simonet / infograf768
      Joomla co-fondateur.
      Sauf demande explicite de ma part, merci de ne pas utiliser de Message Privé pour poser des questions. Le forum est là pour ça.

      Commentaire


      • #4
        +1 avec infograph, mais + encore (sinon risque de sql injection)

        Code PHP:
        $db->setQuery('SELECT * FROM #__users WHERE '.$db->quoteName('username').' = ' .$db->quote($username)); 
        A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
        Rejoignez le Joomla Users Groupe Alsace...
        roland_d_alsace va-t-il devenir roland_du_grand_est ?

        Commentaire


        • #5
          Oui c'est vrai que je les mets dans update et delete mais j'écris toujours mes select en direct, je vais faire attention à ca, merci beaucoup !

          Commentaire

          Annonce

          Réduire
          Aucune annonce pour le moment.

          Partenaire de l'association

          Réduire

          Hébergeur Web PlanetHoster
          Travaille ...
          X