Vous n'êtes pas identifié(e).
13 février 2024 Sortie de Dotclear 2.29
Bonjour,
J'ai 3 blogs, dont 2 privés protégés par le plugin Private version 0.6 du lab.
Le plugin semble s'emmêler complètement les pinceaux s'il est utilisé sur plusieurs blogs. Ces blogs ont respectivement pour adresses : http://monsite.free.fr/blog1 et http://monsite.free.fr/blog2.
Plusieurs cas de figure :
1. Si le mot de passe utilisé sur les 2 blogs est identique, alors se connecter à l'un connecte aussi automatiquement à l'autre blog...
2. Si le mot de passe est différent sur blog1 et sur blog2, voici ce qui se passe :
- Je rentre l'url de blog1, je m'identifie avec le bon mot de passe, le site est correctement affiché.
- Je me rends sur blog2 (l'onglet blog1 n'est pas fermé), il est affiché "Mot de passe incorrect" !
- Je rentre le mot de passe pour blog2, le site est correctement affiché.
- Je me rends sur l'onglet blog1, j'actualise la page, le site est déconnecté ! Je veux dire par là qu'on me redemande d'entrer le mot de passe pour blog1. Cela signifie que s'enregistrer sur blog2 a désactivé le mot de passe de blog1...
Existe-t-il un moyen de résoudre ce problème ?
Hors ligne
Le problème vient de 2 sources :
* 2 blogs sur une même URL
* La ligne 105 du fichier _public.php du plugin qui place le cookie à la racine du site, et pas du blog...
cf ce ticket créé pour l'occasion :)
Dyslexics have more fnu!
Hors ligne
Effectivement.
Mais petite précision, dans ton cas tu joues avec l'option de la connexion automatique.
Correction envisagée (merci pour la suggestion Dsls) en ligne 105 du _public.php
setcookie($cookiepass,md5($_POST['private_pass']),time()+31536000,'/');
par
setcookie($cookiepass,md5($_POST['private_pass']),time()+31536000,$path);
blog1 physiquement à un répertoire ou un un fichier php bidouillé via .htaccess ?
Merci pour les retours.
Hors ligne
J'ai compris d'où vient le problème... mais de là à le résoudre... ;)
J'imagine qu'il faudrait non seulement modifier la ligne qui crée le cookie de manière à le créer au bon endroit (dans le répertoire du blog plutôt qu'à la racine), mais aussi modifier la (ou les ???) ligne(s) qui s'occupe de récupérer le cookie, de manière à aller le chercher au bon endroit ? Et comment récupérer le nom du répertoire du blog ?
Bref, je suis dépassé... malheureusement...
Hors ligne
Oooops j'ai répondu trop vite, je n'avais pas lu ton message osku.
blog1 et blog2 ont été créés selon la procédure que j'ai décrite ici.
Autrement dit, par une simple copie et un renommage du fichier blog.php à la racine...
Hors ligne
J'ai modifié la ligne 105 du _public.php plugin... sans succès ! J'ai mis le code suggéré par osku :
setcookie($cookiepass,md5($_POST['private_pass']),time()+31536000,$path);
J'ai vidé le cache de mon navigateur, j'ai vidé le cache de dotclear... et ça n'a rien changé. J'ai pourtant testé plusieurs fois, en vidant les caches à chaque fois.
Firefox m'indique toujours 2 cookies pour monsite.free.fr (le répertoire du blog n'est donc pas pris en compte ???) : j'ai le cookie dc_blog_private_blog1 et dc_blog_private_blog2.
J'en reviens à ma question précédente : n'y aurait-il pas autre chose à modifier ? L'endroit où l'on va chercher le cookie ?
Hors ligne
Je viens de tout refaire, et oui : le problème persiste. J'ai supprimé tous mes cookies, vidé le cache du navigateur et de dotclear, et même re-uploadé la modif (au cas où...), et rien n'a changé par rapport au comportement décrit en #1...
Hors ligne
J'avais oublié :
Mais petite précision, dans ton cas tu joues avec l'option de la connexion automatique.
Je ne comprends pas bien. Cocher cette case OU ne pas la cocher ne change rien du tout. Même si je ne la coche sur aucun des 2 blogs, le problème reste strictement identique...
Hors ligne
J'ai lu quelques billets consacré à ce plugin, et ça me fait penser que j'ai peut-être omis de mentionner certaines infos importantes...
1. Le plugin est installé dans un répertoire à part (autrement dit hors du répertoire dotclear, et directement à la racine de l'hébergement) : le plugin est installé dans www/dotclear-files/public/plugins.
2. Pour forcer les plugins à s'installer dans ce répertoire, j'ai modifié la ligne "define('DC_PLUGINS_ROOT',dirname(FILE).'/../plugins');" du fichier dotclear/inc/config.php par les lignes suivantes :
define('DC_PLUGINS_ROOT',dirname(__FILE__).'/../plugins'.
PATH_SEPARATOR.dirname(__FILE__).'/../../dotclear-files/plugins/');
3. J'utilise un thème personnalisé. Il est tout à fait possible qu'il y manque tout un tas de behaviors (que je n'ai pas pris la peine de recopier du thème par défaut).
Est-ce que l'un ou l'autre de ces éléments pourrait avoir une incidence ???
Hors ligne
Merci pour toutes ces informations.
Il semble que le problème soit plus lié à ta méthode d'installation du multiblog.
Il faut impérativement pour que ce plugin fonctionne que tu aies un répertoire par blog comme indiqué ici : http://fr.dotclear.org/documentation/2. … /multiblog
Je te propose de réajuster ton installation pour voir si le pb persiste :)
Hors ligne
Mmmmmm... Plus facile à dire qu'à faire. J'ai quantité de galeries, sans parler des images dans les billets. Si mes urls changent, il faudrait que je refasse TOUT ! Ou alors mes images ne s'afficheront plus !
Il n'y aurait vraiment pas d'autre solution ?
J'ai bien des cookies différents pour chacun des blogs, alors pourquoi s'écrasent-ils l'un l'autre ???
Hors ligne
Le problème peut se poser autrement : existe-t-il un moyen simple de retrouver les miniatures des galeries (les galeries n'ont plus aucune miniature associée) ainsi que les images à l'intérieur des billets après un changement d'urls ???
Il faudrait pouvoir modifier les URLS de toutes ces images, mais comment ? Peut-être qu'une requête SQL pourrait faire ça ?
Hors ligne
En fait il n'y a d'image dans un billet que sur 1 seul de mes blogs, donc ça devrait être faisable par une requête sql : quelque chose du genre "dans tous les billets, on remplace /dotclear-files/ par /blog1/"... Ça doit être faisable ???
Par contre, je ne comprens pas pourquoi il n'y a plus aucune miniature attachée à mes galeries ? Et où (dans quelle colonne de quelle table) cela est-il stocké, que je vois si je peux le modifier ?
Hors ligne
Bon, j'étais persuadé que ça fonctionnerait en suivant le conseil d'osku, c'est-à-dire en réinstallant mon multiblog selon la méthode indiquée dans la doc (un répertoire par blog)...
... et bien non ! Cela n'a absolument rien changé. J'ai rigoureusement le même comportement... C'est incompréhensible ! Et j'ai fait tout ça pour rien :(
Une petite idée pour me sortir de là ? D'avance merci !
Hors ligne
J'ai contacté fix par email privé pour connaitre ces blogs privés et regarder de plus près.
Ce qui me surprend c'est :
Son blog est sous la forme : http://machin.free.fr/rep1/toto/
Et le chemin à enregistrer dans le cookie de session est le suivant (http://lab.dotclear.org/browser/plugins … ic.php#L50)
$path = str_replace(http::getHost(),'',$core->blog->url);
Qui devrait me retourner en toute logique le chemin suivant :
/rep1/toto/
Est-ce que la fonction getHost a un comportement loufoque chez free ?
Question subsidiaire :
Peut-on avoir deux cookies de même nom dirigés vers le même host mais avec des chemins différents ?
Hors ligne
En fait les cookies ONT bien des chemins différents. Voici ce que m'indique Firefox : j'ai 3 cookies sur sxjpl.free.fr :
. 1° cookie : nom = dc_blog_private_toto ; hôte = sxjpl.free.fr ; chemin = /rep1/toto/
. 2° cookie : nom = dc_blog_private_maman ; hôte = sxjpl.free.fr ; chemin = /rep2/maman/
. 3° cookie : nom = dc_privateblog ; hôte = sxjpl.free.fr ; chemin = /
Hors ligne
Minute papillon :)
Le plugin peut générer entre 1 et 2 cookies par blog :
- dc_privateblog : cookie de session généré si on rentre le bon mot de passe -
- dc_blog_private_<id du blog> est créé si on coche "se connecter automatiquement" - présence facultative.
On laisse donc le second de coté pour notre histoire..
Hors ligne
Je dis peut-être une ânerie, mais à partir du moment où les cookies ont des noms différents, pourquoi ne pas les mettre tous à la racine du domaine ?
Hors ligne
Je dis peut-être une ânerie, mais à partir du moment où les cookies ont des noms différents, pourquoi ne pas les mettre tous à la racine du domaine ?
Voui pourquoi pas .
Mais le problème ici est dc_privateblog dont le chemin n'est pas défini comme il devrait .. (au moins chez Free)
Hors ligne
Je pensais que le Options +Multiviews dans mon .htaccess pouvait avoir une incidence... Je l'ai supprimé, du coup mes 2 blogs sont http://sxjpl.free.fr/blog2/ et http://sxjpl.free.fr/blog3/
Mais là encore, ça n'a rien changé !
Aucune piste à l'horizon osku ?
Hors ligne
Je pensais que le Options +Multiviews dans mon .htaccess pouvait avoir une incidence... Je l'ai supprimé, du coup mes 2 blogs sont http://sxjpl.free.fr/blog2/ et http://sxjpl.free.fr/blog3/
Mais là encore, ça n'a rien changé !Aucune piste à l'horizon osku ?
Si, je vais définir le nom du cookie en fonction du blog et ce sera réglé.
Mais j'aurais bien aimé réponses à mon message en #17
Hors ligne
pour répondre à ta question en #17 ce n'est pas possible d'avoir deux cookies avec le même nom, ça ne fait qu'écraser le précédent.
Et aussi, tu devrais utiliser les variables $_SERVER il y en a une qui donne direct le path
Le lab => http://lab.dotclear.org
Besoin d'un plugin? => http://plugins.dotaddict.org
Besoin d'un thème? => http://themes.dotaddict.org
Besoin d'une astuce? => http://tips.dotaddict.org
Hors ligne
pour répondre à ta question en #17 ce n'est pas possible d'avoir deux cookies avec le même nom, ça ne fait qu'écraser le précédent.
Et aussi, tu devrais utiliser les variables $_SERVER il y en a une qui donne direct le path
T'es sûr pour ton premier point ?
C'est pas le triplet nom du cookie - host - path ?
Car le cookie de mémorisation des infos pour le post des commentaires porte le même nom sur les blogs
comment_info
Hors ligne
Vous n'êtes pas identifié(e).