Identification à la connexion

Bonjour,

Je souhaite utiliser PluXml pour réaliser un petit site familiale privé avec une identification à la connexion avant d'arriver sur la page d'accueil et sans passer par la case d'Administration. Est-ce possible ?

Cordialement et merci.

Réponses

  • Bonjour est bienvenue parmi nous Triphon,

    Je te propose un petit tutoriel réalisé pour des pages "Statiques" sur mon site.

    Le but est simple, tu fais une page d'accueil normal pour recevoir les membres de ta famille et propose un bloque de connexion avec un/des mot/s de passe pour accéder à/aux page/s que tu désire restreindre.
  • Bonjour,
    Je te remercie pour ta réponse mais ce n'est pas exactement ce que je cherche à faire. C'est à la fois plus classique et peut-être... plus compliqué ? Le site doit être entièrement privé (pas simplement quelques pages). Bref c'est une session utilisateur avec identification que doivent ouvrir les membres dès l'arrivée sur le site.
    Cordialement.
  • Bonsoir,

    Si c'est pour tout le site je pense que tu peux utiliser ce code au début de ton fichier header.php
    if((!defined('PLX_AUTHPAGE') or PLX_AUTHPAGE !== true) AND (!isset($_SESSION['user']) OR $_SESSION['user']=='')) {
        header('Location: ./core/admin/auth.php?p='.$_SERVER['REQUEST_URI']);
        exit;
    }
    
    Pas testé, mais la solution à ton problème ne doit pas être loin de ça.
  • Bonjour,
    En effet, le code proposé renvoie bien sur la page d'identification mais il y a un problème de redirection :

    Ligne http affichée :
    http://localhost/pluxml/core/admin/auth.php?p=/pluxml/

    Page affichée !
    Not Found : The requested URL /pluxml/core/admin/pluxml was not found on this server.

    Pluxml s'ajoute au chemin d'administration au lieu de revenir à la racine.

    Cordialement et merci pour vos efforts.
  • On finit toujours par trouver la solution... Donc je récapitule la manipulation :

    1 - Ajouter dans le fichier header.php le code suivant juste avant le </head> :

    <?php if((!defined('PLX_AUTHPAGE') or PLX_AUTHPAGE !== true) AND (!isset($_SESSION) OR $_SESSION=='')) {
    header('Location: ./core/admin/auth.php?p='.$_SERVER);
    exit;
    }?>

    2 - on modifie la redirection du fichier auth.php

    if($connected) {
    header('Location: '.$plxRoot->aConf.'/'.basename(urldecode($_GET)));
    } else {
    $msg = 'Login et/ou mot de passe incorrect';
    $error = 'error';
    }


    en lieu et place de :

    if($connected) {
    # On redirige
    if(!empty($_GET) AND basename(urldecode($_GET)) != '' AND basename(urldecode($_GET)) != 'admin')
    header('Location: '.$plxAdmin->aConf.'core/admin/'.basename(urldecode($_GET)));
    else
    header('Location: '.$plxAdmin->aConf.'core/admin/');
    exit;
    } else {
    $msg = 'Login et/ou mot de passe incorrect';
    $error = 'error';
    }


    Voilà maintenant, il n'y a plus d'anonyme sur le service.
  • AirWAirW Member
    Frédéric a écrit:
    Bonjour est bienvenue parmi nous Triphon,

    Je te propose un petit tutoriel réalisé pour des pages "Statiques" sur mon site.

    Le but est simple, tu fais une page d'accueil normal pour recevoir les membres de ta famille et propose un bloque de connexion avec un/des mot/s de passe pour accéder à/aux page/s que tu désire restreindre.
    Bonjour !

    La page indiquée n'est plus disponible !

    J'ai utilisé en partie la méthode donnée par Triphon dans un des posts suivants (ça correspondait assez bien à ce que je cherchais) mais seulement le 1-.

    Pour le 2-, je n'ai pas trouvé le passage indiqué dans le fichier auth.php. Peut-être fait-il référence au tut de Fred qui a disparu ?

    En tout cas, ce que j'obtiens pour l'instant :
    - Si le login ou le mdp est faux je reste sur la boite d'identification
    - S'il est correct, j'arrive dans l'interface d'administration.

    Le 1er point n'est pas gênant.
    Pour le 2ème, j'aimerai arriver directement "côté" public...

    S'il est possible de limiter la zone d'accès restreint à 1 ou plusieurs groupe(s) de pages statiques je suis preneur de la méthode.

    Bonne nuit !
  • jeffjeff Member
    juin 2011 modifié
    Bonjour,
    Le calcul de la redirection s'effectue dans le fichier core/admin/auth.php.
    En 5.02, il faut modifier le block de code comme indiqué par Triphon. Je rajouterais cependant un exit; :
        if($connected) {
           header('Location: '.$plxRoot->aConf['racine'].'/'.basename(urldecode($_GET['p'])));
           exit();
        } else {
                 $msg = 'Login et/ou mot de passe incorrect';
                 $error = 'error';
        }
    
    En 5.1 beta 1, la modification est différente :
    if($connected) {
    		header('Location: '.$redirect);
    		exit;
    	} else {
    		$msg = L_ERR_WRONG_PASSWORD;
    		$error = 'error';
    	}
    
    par
    if($connected) {
    		header('Location: '.$plxAdmin->aConf['racine']);
    		exit;
    	} else {
    		$msg = L_ERR_WRONG_PASSWORD;
    		$error = 'error';
    	}
    
    Tous les utilisateurs seront redirigés sur la page d'accueil après l'authentification.
  • AirWAirW Member
    Super !
    Merci beaucoup !
  • Bonjour !

    Voila un moment que j'ai fait la modification et j'en étais très content... Et ce matin... Je m'aperçois que l'on peut contourner la protection simplement avec un téléphone portable.

    OK, me dis-je à moi-même en aparté, il suffit de modifier aussi le thème "mobile" ! Oui, mais il n'y a pas de auth.php dans mobile.defaut. Comment faire ? Créer le fichier avec seulement la portion code donnée par Jeff ?
  • StéphaneStéphane Member, Former PluXml Project Manager
    auth.php est dans le dossier core/admin est il est commun que ce soit un pluxml mobile ou non.

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • OK !
    Super : ça roule !
    Merci !
  • AirWAirW Member
    décembre 2011 modifié
    Re-Bonjour !

    Je supprime mon post qui n'a plus lieu d'être : C'était sans doute une erreur de ma part. J'ai ré-installé et tout marche.

    Bon week-end !

    --
    AirW
  • Bonjour tout le monde,


    Pour mes besoins personnels j'ai bidouillé les codes ci-dessus dans le but de faire apparaitre du contenu dans la partie publique aux utilisateurs connectés:


    On vérifie que le visiteur est connecté:
    <?php 
    if((!defined('PLX_AUTHPAGE') or PLX_AUTHPAGE !== true) AND (!isset($_SESSION['user']) OR $_SESSION['user']=='')) {
        $connected = false;}
    	else {
    	$connected = true;
    	}
    ?>
    


    S'il est connecté on affiche ce que l'on veut (dans mon exemple j'ajoute une entrée au menu):
    <?php if($connected) {
    	echo '<li><a href="#">test</a></li>';
    	} else {
    					
    	}
    ?>
    


    Ça marche, mais ça peut surement être amélioré. J'attends vos commentaires !
  • Tanpopo a écrit:
    Bonsoir,

    Si c'est pour tout le site je pense que tu peux utiliser ce code au début de ton fichier header.php
    if((!defined('PLX_AUTHPAGE') or PLX_AUTHPAGE !== true) AND (!isset($_SESSION['user']) OR $_SESSION['user']=='')) {
        header('Location: ./core/admin/auth.php?p='.$_SERVER['REQUEST_URI']);
        exit;
    }
    
    Pas testé, mais la solution à ton problème ne doit pas être loin de ça.

    Bonjour à tous, je remonte juste ce post pour info : j'ai testé en local comme sur le net (hebergement free), et cela fonctionne à merveille (version pluxml 5.1.7).

    Code à rajouter au tout début du header du theme, comme dit par Tanpopo, juste après "<?php".
    (et penser à faire de même dans les autres header si plusieurs themes sont présent dans le dossier theme ;) )
  • @Frederic

    Bonjour
    "Je te propose un petit tutoriel réalisé pour des pages "Statiques" sur mon site."
    Est-ce qu'il y a toujours un lien pour ce tuto

    Merci
  • Faudrait que je recherche dans mes archives, mais je ne suis pas sur que j'ai encore ça :(
  • JosJos Member
    octobre 2013 modifié
    Je viens de tester également car je cherche une solution semblable, et çà fonctionne. Par contre, est-ce que c'est sécurisé?
  • FrédéricFrédéric Member
    octobre 2013 modifié
    Ajoute plutôt dans le fichier header.php avant tout code ceci:
    [== PHP ==]
    $session_domain = dirname(__FILE__);
    
    if(!defined('PLX_AUTHPAGE') OR PLX_AUTHPAGE !== true){ # si on est pas sur la page de login
    	# Test sur le domaine et sur l'identification
    	if((isset($_SESSION['domain']) AND $_SESSION['domain']!=$session_domain) AND (!isset($_SESSION['user']) OR $_SESSION['user']=='')){
    		header('Location: ./core/admin/auth.php?p='.htmlentities($_SERVER['REQUEST_URI']));
    		exit;
    	}
    }	
    
    Tiré du fichier prepend ;)
  • JosJos Member
    Merci Frédéric ;)
  • Jerry WhamJerry Wham Member
    octobre 2013 modifié
    Il vaut mieux l'utiliser dans le hook d'index.php. Ça sécuriserait tous les thèmes d'un coup... et tu pourrais nous en faire un petit plugin ]:D
Connectez-vous ou Inscrivez-vous pour répondre.