web-dev-qa-db-fra.com

Rediriger vers la page d'accueil après la déconnexion

Je souhaite rediriger un utilisateur vers la page d'accueil de mon site Web joomla et lui indiquer qu'il ne doit pas pouvoir revenir dans le navigateur. Absolument pas.

J'ai essayé beaucoup de choses à ce sujet mais je ne pouvais pas le faire.

Comment puis-je arrêter de revenir en arrière et rediriger l'utilisateur vers la page d'accueil.

P.S j'ai un module de connexion qui a une page de redirection de déconnexion de paramètres: l'a configuré dans le menu de la page d'accueil qui apparaît dans la case à cocher.

ne fonctionne pas.

2
Faheem Rasheed

Il semble que vous souhaitiez que les utilisateurs non connectés accèdent uniquement à la page d'accueil de votre site.

Évidemment, si vous les redirigez lors de la déconnexion, l'utilisateur peut toujours revenir à une autre URL.

Ce que je suggère, vous devriez créer un plugin système pour cela qui vérifiera si l'utilisateur est connecté ou non. Et si l'utilisateur n'est pas connecté, redirigez-le vers la page d'accueil.

Vous pouvez appliquer cette vérification à l'événement joomla onAfterRoute()

function onAfterRoute()
{
  $userId = JFactory::getUser()->id;

  //if user is not logged-in redirect to home-page
  if(!$userId){
     JFactory::getApplication()->redirect("index.php");
  }

}

Pour créer un plugin joomla, vous pouvez vous référer à ces tutoriels

Développement de plugin

Création d'un plugin pour Joomla

2
Nick

Ce n'est pas une très belle chose, mais je pense que cela peut fonctionner:

étape 1:

À la déconnexion, redirigez l'utilisateur vers votre page d'accueil en ajoutant une petite variable $ _GET. Lien de redirection devrait être

http://www.yourdomain.com/index.php?logged_out=1

étape 2:

Insérez, dans cette page ou dans votre template Joomla index.php, un script qui empêchera le bouton Précédent de fonctionner lorsque la variable $ _GET ['logs_out'] est définie. Cette partie est vraiment délicate, car aucune méthode à ma connaissance ne fonctionnera dans toutes les situations. Le moyen le plus simple de désactiver le bouton de retour est IMO pour le tromper:

<?php 
    if (isset($_GET["logged_out"])){
       echo '<script type="text/javascript">window.location.replace('.JURI::base().');</script>';
    }
?>

Cela redirigera l'utilisateur vers votre page d'accueil une autre fois. Comme je l'ai dit, ce n'est pas très beau, mais je doute qu'il y ait de belles façons de faire. En fait, je suggérerais fortement d’évaluer si cela est vraiment nécessaire.

1
Khaarkh