Redirection après erreur de connexion

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

  • [Problème] Redirection après erreur de connexion

    Bonjour,

    J'administre un site sous Joomla 3.8.1 ce dernier utilise plusieurs déclinaisons d'un template (style) en fonction de la Collectivité Locale (logo, couleurs...), lorsqu'un utilisateur fait une erreur de login ou mot de passe, la page d'erreur de connexion change de template (l'utilisateur se retrouve donc sur la page d'une autre collectivité Locale), avec le message "Avertissement
    Cet utilisateur n'existe pas"

    quelqu'un aurait-il une piste pour le message d'erreur se charge dans la même page ou à défaut sans changer de style de template ?


    Je précise que je n'utilise pas le module "Login" mais le lien de menu type "Connexion" pour l'identification des utilisateurs. Les paramètres de ce lien de menu permettent une redirection à la connexion et une différente à la déconnexion, ces derniers sont corrects, mais rien ne me permet une redirection en cas d'erreur...

    Merci,

    Seb
    ZerooCool aime ceci.

  • #2
    Bonjour, je n'ai pas la solution à ton problème, je partage avec toi mes notes, pour rester sur la même page, après une connexion.
    Faire une recherche pour voir comment fonctionne une simple redirection, une simple gestion des erreurs, pour un module de connexion qui permet une redirection.

    Quelques pistes que j'avais mis de côté, mais, tu va devoir chercher et adapter pour gérer le message d'erreur qui t'intéresse.
    Bon courage. Peut être que d'autres membres pourront compléter, de façon plus précise, sur la gestion des erreurs de connexion.


    Utiliser un plugin pour Joomla! 3.x pour mettre en place des redirections spécifiques après login.
    extensions.joomla.org/extensions/extension/access-a-security/site-access/redirect-on-login

    Question : How to stay on the same page after login ?
    Posté sur le forum officiel : http://www.shape5.com/component/opti...topic,43434.0/
    Me renvoie sur la doc de Joomla! :
    Comment rediriger les utilisateurs après une authentification réussie : https://docs.joomla.org/How_do_you_r...ssful_login%3F
    Deux articles équivalent et complémentaires :
    http://www.joomla-tips.org/developer...ful-login.html
    http://stackoverflow.com/questions/5...-previous-page

    Solution alternative
    Créer un menu connexion pour chaque page : http://help.joomla.fr/3/index.php/ex...ules-connexion

    Ici le simple module de connexion par défaut
    Pour rediriger les utilisateurs après une connexion réussie avec le «module de connexion", vous devez choisir un élément de menu sous l'onglet «Options», la section «Options de base de. Pour modifier un module de connexion, vous devez aller au module de connexion spécifique:
    Sélectionnez Extensions → Module Gestionnaire → <sélectionner un type de module de connexion>
    La page de redirection de connexion est sélectionné dans la liste déroulante des choix à côté de l'élément Connexion Redirection page.
    DOC JOOMLA! POUR UNE REDIRECTION SUR LA MEME PAGE APRES CONNEXION
    Si vous souhaitez remplacer la connexion par défaut spécifié dans votre Administration back-end à partir de votre code personnalisé, vous pouvez le faire avec ce qui suit:
    Prenez l'URL que vous souhaitez rediriger l'utilisateur vers après avoir connecté avec succès et appliquer la fonction 'base64_encode' à elle. Par exemple,
    [code type=php]$redirectUrl = urlencode(base64_encode($redirectUrl));
    // a base64_encode of index.php?option=com_pizzapie' yeilds: 'aW5kZXgucGhwP29wdGlvbj1jb21fcGl6emFwaWU='[/code]
    If you use a string returned by base64_encode in a URL as a parameter, be sure to escape it with urlencode. '+' is one of the characters used in MIME Base64. Any '+' characters in a URL parameter are converted to spaces during query string parsing. Thus, if you say "&return=" . base64_encode("http://localhost/~me"), it'll be decoded as http://localhost/[Y.

    Prepend the '&return=' query string to your newly encoded $redirectUrl. For example,
    [code type=php] $redirectUrl = '&return='.$redirectUrl;[/code]

    Append that $redirectUrl to the Joomla Login Url. For example,
    [code type=php] $joomlaLoginUrl = 'index.php?option=com_users&view=login';
    $finalUrl = $joomlaLoginUrl . $redirectUrl;[/code]

    When you display that $finalUrl, it should look something like this: 'index.php?option=com_users&view=login&return=aW5k ZXgucGhwP29wdGlvbj1jb21fcGl6emFwaWU='
    The controller.php file in the com_users checks the contents of the 'return' in the JRequest object (the Joomla query access object). If it is set and in the base64 format, it base64_decode(s) it and applies that redirection.
    Sympa la doc Joomla! mais je n'ai pas compris.

    Avec le module de connexion par défaut de Joomla!
    1- Fichier controller com_users login same-page patch : Composant/com_users/controller.php
    [code type=php]$return = JURI::getInstance()->toString();
    $url = 'index.php?option=com_user&view=login';
    $url .= '&return='.base64_encode($return);
    $this->setRedirect($url, XiText::_('YOU_MUST_LOGIN_FIRST')); // if you are in controller[/code]

    Test de la mod mod_je_login
    Peut-être obsolète.
    Il ne faut pas patcher com_users comme précédemment. Remettre le fichier original du controller.php pour com_users.
    La mod_je_login s'occupe des redirections, sur la même page, de façon automatique.
    tmpl / default.php : <br/> devant les input.

    fr-FR.mod_je_login.ini à la racine du dossier doit être placé dans le dossier language de Joomla!

    La mod je-login est bien, mais, elle ne marche " plus " ou " pas tout le temps " sur les positions left et right.

    Test avec BT Login Module
    bowthemes.com/bt-login-module

    La mod de connexion SCLogin
    www.sourcecoast.com/index.php?option=com_ars&view=release&Itemid=248

    10 pistes de bogue de connexion pour Joomla!
    www.itoctopus.com/10-reasons-why-youre-not-able-to-login-to-your-joomla-website


    Zer00CooL
    La réponse collaborative.
    Dernière édition par cavo789 à 16/08/2018, 14h34

    Commentaire


    • #3
      Salut,

      D'une manière générale, attention aux modifications de code dans les fichiers d'origine.
      A la première mise à jour vous perdez les modifs.
      Il faut privilégier les fichiers de substitutions ("overrides").

      Stratégiquement, si je dois utiliser un même template avec des déclinaisons pour des groupes d'utilisateurs différents, j'utiliserai la version de base pour la dédier à toutes les url transversales (communes à tous) et une variante du template par chaque groupe d'utilisateurs.
      Ainsi, théoriquement, en cas de changement de template intempestif, cela se fera avec le template de base, donc neutre.

      Pour les problèmes de redirection, le premier endroit à visiter c'est le composant natif de Joomla "Redirection" (faut activer le plug-in correspondant).
      Sinon en installant un autre composant spécialisé.
      Et en dernier recours, quelques lignes dans le fichier htaccess.

      Mais il vaut mieux gérer cela avec un bon composant.
      ReDJ peut faire des miracles, surtout si on sait s'y prendre avec les expressions.
      ReDJ allows to manage URL redirection (useful for creating URL aliases, and managing redirection from old to new URLs). No more error 404 (page not found). Managing associations from old to new URLs, all links to old pages will be redirected to new ones.


      Dol.
      Je préfère éclairer que briller.” - “J'ai peut-être l'air froid, mais je suis pas givré.- "ça dépend ça dépasse"
      Ne m'envoyez pas de message privé pour résoudre vos problèmes sans y avoir été invité.
      Dolmenhir : tailleur de site web depuis 1997. Spécialiste Joomla depuis 2005. https://www.dolmenhir.fr

      Commentaire


      • #4
        Bonjour et merci pour vos réponses, pour répondre à ZerooCool, la gestion des redirections après connexion s'administre parfaitement si l'utilisateur a entré des identifiants et mot de passe correct, donc pas de soucis de ce coté là.

        Chaque Style possède son propre menu avec ses urls spécifiques, donc je ne partage pas 1 élément de menu via des alias dans les différents styles. Ce qui m'étonne le plus c'est qu'en cas d'erreur, la redirection n'affiche pas le template par défaut (celui du portail d'entrée général) mais utilise un des "sous templates" en particulier, il y a 1 template par défaut et 3 styles que j'ai attribué à chaque élément de menu, j'ai tout vérifié de ce coté au niveau urls (un oubli lors de la duplication du menu aurait pu être la cause).

        Je souhaite éviter l'utilisation du ou d'un module "Connexion" tiers pour une question d'ergonomie.

        Le composant "redirection" est activé mais je ne trouve pas dans la liste des urls celle que je pourrais modifier pour que le système conserve le style "en cours".

        Je vais jeter un œil du coté du composant ReDJ dont tu me parles Dolmenhir... et voir si c'est à ma portée.

        J'avais bien pensé à un override du Router... mais l'analyse du fichier ne m'a pas vraiment "parlé".

        J'avais trouvé ça aussi, mais ça permet de choisir 1 seule redirection en cas d'erreur d'identification or, j'ai besoin d'une redirection dynamique, prenant en compte le style....

        Iam using the login module of Joomla. Login and Logout redirects to the pages which are set in the modul settings. My problem is the status, where a user tries to login with wrong user credential...


        Je continue de creuser, toutes les bonnes idées sont évidemment les bienvenues ! Merci.

        Seb
        Dernière édition par SebC à 18/10/2017, 09h09

        Commentaire

        Annonce

        Réduire
        Aucune annonce pour le moment.

        Partenaire de l'association

        Réduire

        Hébergeur Web PlanetHoster
        Travaille ...
        X