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 ?
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.
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.
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.
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.
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';
}
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 ?
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):
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 )
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;
}
}
Réponses
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.
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.
Si c'est pour tout le site je pense que tu peux utiliser ce code au début de ton fichier header.php Pas testé, mais la solution à ton problème ne doit pas être loin de ça.
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.
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.
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 !
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; : En 5.1 beta 1, la modification est différente : par Tous les utilisateurs seront redirigés sur la page d'accueil après l'authentification.
Merci beaucoup !
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 ?
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Super : ça roule !
Merci !
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
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é:
S'il est connecté on affiche ce que l'on veut (dans mon exemple j'ajoute une entrée au menu):
Ça marche, mais ça peut surement être amélioré. J'attends vos commentaires !
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 )
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