logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
19 visiteur(s) et 0 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 108 286 668

  • Nb. de membres 8 693
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  Questions »» S'identifier sur deux sites en même temps

Nouveau sujet
 S'identifier sur deux sites en même temps#24946Répondre

3Contributeur(s)
PhilGuenJireckdeveloppeur
3 Modérateur(s)
developpeurjpbJireck
PhilGuen PhilGuenicon_post
Bonjour à tous,

Pour un de mes portails, j'utilise un hébergement de secours contenant une copie (fichiers et BDD) du site principal.

Lorsqu'une personne se connecte pour la première fois au site principal, les cookies USER et USER_LANGAGE sont créés pour ce site. Je souhaiterais qu'en même temps soient également créés les mêmes cookies pour le site de secours. Cela permettrait qu'en cas de redirection automatique (transparente pour l'utilisateur) vers le site de secours, les utilisateurs n'aient pas besoin de s'identifier pour ce site de secours.

Ca ne me semblait pas si difficile en dupliquant la fonction docookie, sauf que je ne trouve pas dans cette fonction la variable qui "marque" le site pour lequel les cookies sont créés (domaine).

Merci de votre aide et de vos conseils

Bon dimanche

Philippe

Message édité par : PhilGuen / 10-10-2010 09:20

Jireck Jireckicon_post
PhilGuen PhilGuenicon_post
Merci Ji

Bon, c'est donc que l'argument domaine est implicite ... je fais des tests en le "forcant" et je reviens vous dire.
PhilGuen PhilGuenicon_post
Bon : ECHEC

j'ai modifié la fonction docookie ainsi



function docookie($setuid, $setuname, $setpass, $setstorynum, $setumode, $setuorder, $setthold, $setnoscore, $setublockon, $settheme, $setcommentmax, $user_langue) {
    $info = base_64_encode("$setuid:$setuname:".md5($setpass).":$setstorynum:$setumode:$setuorder:$setthold:$setnoscore:$setublockon:$settheme:$setcommentmax");
    global $user_cook_duration;
    if ($user_cook_duration<=0) {$user_cook_duration=1;}
    $timeX=time()+(3600*$user_cook_duration);
    //setcookie("user","$info",$timeX);
    setcookie("user","$info",$timeX,"/","cyclos.descartes.free.fr");
    setcookie("user","$info",$timeX,"/","cyclos.descartes2.free.fr");
    if ($user_langue!="") {
       //setcookie("user_language","$user_langue",$timeX);
       setcookie("user_language","$user_langue",$timeX,"/","cyclos.descartes.free.fr");
       setcookie("user_language","$user_langue",$timeX,"/","cyclos.descartes2.free.fr");
    }
}



mais le second cookie n'est pas créé. En fait, ce que je n'ai pas compris, c'est comment faire pour qu'il y ait en même temps un cookie cyclos.descartes.free.fr et cyclos.descartes2.free.fr :-?
Jireck Jireckicon_post
reponse sans recherche

en mettant .free.fr avec les points ??
developpeur developpeuricon_post
attention un cookie est par définition liée à un DNS (ou sous-DNS) / il n'est normalement pas possible de faire autrement
PhilGuen PhilGuenicon_post
Merci DEV, j'en étais arrivé à cette conclusion (sans en connaître l'explication). C'est bien dommage.

Si tu as une idée pour contourner le problème, ca m'aiderait bien

Cordialement
developpeur developpeuricon_post
un !javascript! je dirais qui en te connecter sur un site ouvre une mini fenetre sur l'autre
PhilGuen PhilGuenicon_post
merci DEV

si je comprends bien à partir de la fonction docookie appel d'une page se trouvant sur l'autre serveur, avec passage des paramètres (comment faire pour une sécurité optimum?) et création du second cookie à partir de cette nouvelle page.

Bon, je teste ca ... on verra la sécurité après, si c'est opérationnel !
PhilGuen PhilGuenicon_post
Voici ce que j'ai faits :

Dans la fonction docookie() du site principal (cyclos.descartes.free.fr), j'ai ajouté la ligne suivante



echo"<script>window.open('http://cyclos.descartes2.free.fr/docookie.php?info=$info&user_langue=$user_langue&user_cook_duration=$user_cook_duration','secours','menubar=no, status=no, scrollbars=no, menubar=no, width=50, height=50');</script>";



et sur l'hébergement du site de secours (cyclos.descartes2.free.fr), j'ai créé une page docookie.php contenant le code suivant :



    <?php
    $info 
$_GET['info'];
    $user_langue = $_GET['user_langue'];
    $user_cook_duration = $_GET['user_cook_duration'];
        if ($user_cook_duration<=0) {$user_cook_duration=1;}
        $timeX=time()+(3600*$user_cook_duration);
        setcookie("user","$info",$timeX);
        if ($user_langue!="") {
           setcookie("user_language","$user_langue",$timeX);
        }
    ?>
    <html>
    <head> 
    </head> 
    <body !onload!="window.setTimeout('self.close()',2000)"> 

    </body> 
    </html> 



Bon : mon deuxième cookies est bien créé correctement par l'intermédiaire de la deuxième fenêtre MAIS GROS BUG :

Après l'appel de la page "externe", le script de la fonction docookie() ne continue pas.
L'exécution dans la première fenêtre est stoppée => page blanche.

En plus, petit inconvénient, la solution window.open nécessite l'acceptation des popups par l'utilisateur. Un moyen de faire autrement??

Enfin, qu'en est-il de la sécurité?????

Merci aux VRAIS programmeurs de leur aide :b

Message édité par : PhilGuen / 12-10-2010 17:50

developpeur developpeuricon_post
Sécurité : toute pourrie
programmeurs : c'est pour les machines à lavées ...

8-)
PhilGuen PhilGuenicon_post
Citation : developpeur 

Sécurité : toute pourrie

8-)  


C'est bien pour ca que je demande conseil

Citation : developpeur 

programmeurs : c'est pour les machines à lavées ...

8-)  


Tiens :-o je croyais que c'était le programmateur qu'on trouvait sur une machine à laver :-?
developpeur developpeuricon_post
... :-P ...
PhilGuen PhilGuenicon_post
Bon !!!! Hum !!! la réponse est ici http://fr.wiktionary.org/wiki/programmateur ... on a raison tous les deux (mais, moi j'ai plus raison :-D ).

De toutes façons je ne suis ni l'un ni l'autre. Le tout petit peu que je connais, je l'ai appris en "bidouillant" NPDS. Alors il y a des tonnes de choses que je n'ai ni appris, ni compris ...

Aussi je vais demander l'aide des "codeurs" :=! et puis ... zut ... je demande l'aide de tout le monde nah ..

1°) Comment mieux sécuriser ce script "pourri"? J'ai fait ca ... est-ce que c'est mieux?



<?php
if(!isset($mainfile)) { !!!include!!!("mainfile.php"); }
$info=removeHack($info);
$user_langue=removeHack($user_langue);
$user_cook_duration=removeHack($user_cook_duration);

$timeX=time()+(3600*$user_cook_duration);
setcookie("user","
$info",$timeX);
if (
$user_langue!="") {
       setcookie("user_language","
$user_langue,$timeX);
    }
?>
<html>
<head> 
</head> 
<body !!onload!!="window.setTimeout('self.close()',2000)"> 
Cookie de secours créé!
</body> 
</html> 




2°) Pourquoi le script de la fonction docookie() ne continue-t-il pas à s'exécuter.
3°) Est-il possible de faire autrement que d'ouvrir une fenêtre qui se trouve alors considérée comme un popup (et ne peux donc s'exécuter quand le navigateur les bloque)

Merci d'avance


Message édité par : PhilGuen / 13-10-2010 09:31

Jireck Jireckicon_post
PhilGuen PhilGuenicon_post
Citation : Jireck 

allez

moi je suis la dedans .... http://desencyclopedie.wikia.com/wiki/Langage_informatique 


:=!

Merci Ji. Même si je ne suis pas programm(at)eur, j'essaie toujours d'aider en fonction de mes faibles connaissances et de mon expérience de NPDS (qui commence à être importante).

Mais sur ce coup, je fais appel à toutes les bonnes volontés (surtout pour résoudre le bug ... qui doit surement prouver que je n'ai rien compris au fonctionnement de php)

Merci d'avance pour votre aide

Cordialement

Philippe

Message édité par : PhilGuen / 14-10-2010 09:10

PhilGuen PhilGuenicon_post
Personne pour me conseiller au moins sur la sécurité?
developpeur developpeuricon_post
Au niveau sécurité c'est simplement pas bon / et tu ne pourra malheureusement pas faire tellement mieux
PhilGuen PhilGuenicon_post
merci DEV