PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 06-09-2010 15:42:42

jcnconsultant
Membre
Inscription : 06-09-2010
Messages : 9

Synchronisation d'un menu entre deux sites

Bonjour à tous.

J'ai aujourd'hui deux sites avec deux noms de domaine différents. Soit premier-site.net et second-site.net. Ces deux sites appartiennent au même propriétaire.
Le site second-site.net possède des menus dynamiques qui sont modifié par une administration sur ce site. C'est le site "Maitre"
Pour être en synchronisme parfait, grâce au script suivant, je récupère ces différents menus encadrés par des commentaires. Dans mon exemple le site maitre :


<!-- Start login menu -->
<!-- End of start login menu -->
 

Le script sur le site "Esclave"

<?php
function http_fetch_url($url, $timeout = 10, $userpwd = '')
{
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    if ($userpwd) {
        curl_setopt($ch, CURLOPT_USERPWD, $userpwd);
    }
    $data = curl_exec($ch);
    curl_close($ch);

    return $data;
}

// Get the login menu
if (($content = http_fetch_url('http://second-site/index.php', 10, 'utilisateur:mot_de_passe')) === FALSE)
  {
      die("An error has been found");
  }
else
  {
      if (eregi("<!-- Start login menu -->(.*)<!-- End of start login menu -->", $content, $out))
      {      
        echo $out[0];
      }
  }
?>
 

Tout cela fonctionne parfaitement. Sauf, et là est mon problème, quand ce menu est un menu de login qui change une fois la connexion effectuée sur le site second-site.net

Avant login : connexion | Inscription |

Si je veux récupérer le menu qui a changé et qui devrait être :

Après login : Administration  | Espace Memebres | Déconnexion

Je ne le récupère jamais et je conserve    connexion | Inscription |

Je soupçonne un problème de session mais je ne sais comment le résoudre.
Quelqu'un a-t-il une idée, une piste vers laquelle je pourrai aller ?
Je remercie tous ceux qui voudront bien me répondre et.. les autres pour leurs encouragements.

Jean-Claude l'ancien

Hors ligne

#2 16-09-2010 13:42:47

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : Synchronisation d'un menu entre deux sites

Bonjour,

En fait, je pense que lors de la connexion, il y a initialisation d'une variable....
Il suffit que ton script le fasse pour un des sites mais pas pour l'autre pour que tu ais ce soucis...
A toi de décortiquer le code et de voir quelle variable ou comment ^^


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#3 16-09-2010 14:21:44

jcnconsultant
Membre
Inscription : 06-09-2010
Messages : 9

Re : Synchronisation d'un menu entre deux sites

Bonjour à tous et merci Alnoss pour cette réponse qui demande de ma part quelques précisions.

Quand dans mon script je récupère au travers de la variable $content mon menu d'après login entre les commentaires
[code: html]

<!-- Start login menu -->
<!-- End of start login menu -->
[/code]

C'est bien du code interprété que je récupère sur second-site.net et non du code PHP brut ? Dans ce cas à quoi servira la récupération des variables utilisées pour la détermination du menu ?
Par contre, si c'est du code PHP brut là je te rejoins,mais je ne vois pas comment récupérer ma variable $droits_acces au travers de la fonction PHP curl ?

En exemple le code PHP du menu placé entre les deux commentaires et placé sur second-site.net :
[code: php]
<div id="topsection1">
    <div class="menu-haut">
    <?php
    if(isset($droits_acces['Administrateur'])&& $droits_acces['Administrateur'])
        {
    ?>
    <a href="<?php echo "http://".$_SERVER["SERVER_NAME"]; ?>/gestion/index.php" class="lien-admin" onmouseover="dropdownmenu(this, event, 'anylinkmenuA')">ADMINISTRATION</a>
    <?php
        }
    if((isset($droits_acces['Administrateur'])&& $droits_acces['Administrateur']) || (isset($droits_acces['Utilisateur Adhérent'])&& $droits_acces['Utilisateur Adhérent']))
        {
    ?>
      |  <a href="<?php echo "http://".$_SERVER["SERVER_NAME"]; ?>/membres/index.php" class="lien-haut" onmouseover="dropdownmenu(this, event, 'anylinkmenuB')">MY ACCOUNT</a>  |  <a href="<?php echo "http://".$_SERVER["SERVER_NAME"]; ?>/resource_center/all_doc.php" class="lien-haut" onmouseover="dropdownmenu(this, event, 'anylinkmenuF')">DOWNLOADS</a>  |  <a href="/gestion/logon.php?cmd=logout" class="lien-haut" onmouseover="dropdownmenu(this, event, 'anylinkmenuC')">LOGOFF</a><br /><?php if(isset($name) && $name){echo "<span style=\"color:#FFFFFF\">Connected as ".$name."</span>";} ?>
    <?php
        }
    else
        {
    ?>
    <a href="<?php echo "http://".$_SERVER["SERVER_NAME"]; ?>/gestion/logon.php?title_page=Member login" class="lien-haut" onmouseover="dropdownmenu(this, event, 'anylinkmenuD')">MEMBER LOGIN</a>  |  <a href="<?php echo "http://".$_SERVER["SERVER_NAME"]; ?>/create.php" class="lien-haut" onmouseover="dropdownmenu(this, event, 'anylinkmenuE')">CREATE AN ACCOUNT</a>  |  <a href="<?php echo "http://".$_SERVER["SERVER_NAME"]; ?>/resource_center/all_doc.php" class="lien-haut" onmouseover="dropdownmenu(this, event, 'anylinkmenuF')">DOWNLOADS</a>  |  <br />
    <?php
        }
    ?>
    </div>
    <div class="logo"><a href="/index.php"><img src="/images/p_tr.gif" style="border:0px;width:160px;height:50px;" alt="" /></a></div>
</div>

[/code]

Merci encore pour ton aide Alnoss  ou vos aides.

Jean-Claude l'ancien

Hors ligne

#4 16-09-2010 14:56:19

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : Synchronisation d'un menu entre deux sites

re,

le plus simple aurait-été un fichier placé en include et valable pour les 2... mais bon..c'est fait !
Là où il faut que tu regardes, c'est dans ton fichier vers lequel pointe ton formulaire d'identification...
Or là, je ne vois pas de balise form.... donc a fortiori pas l'action et le nom du fichier en question..

C'est en ce fichier que tu auras :
- la vérification par rapport à la bdd de l'exactitude des identifiants.
- le stockage en session de l'id ou d'un autre champs si jamais tu t'en ressers après (ce qui est le cas ici)

Ici, il faut que tu trouves ce qui implémente $droits_acces['Administrateur']) et $droits_acces['Utilisateur Adhérent']


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#5 16-09-2010 15:25:22

jcnconsultant
Membre
Inscription : 06-09-2010
Messages : 9

Re : Synchronisation d'un menu entre deux sites

Re-bonjour Alnoss,

De nouvelles précisions :
1° Je ne peux pas faire un include, il me semble, car je suis sur deux sites différents premier-site et second-site qui sont hébergés chez deux hébergeurs différents...
2° Quand je me connecte sur second-site l'information indiquant que je suis connecté apparait sur second site ce qui est normal et doit apparaitre aussi si je me rends sur premier-site C'est le but de mon script originel.
3) Une fois connecté sur second-site, le tableau $droits_accès, au travers de la session ainsi ouverte, est rempli faisant que, suivant la personne connectée, $droits_acces['Administrateur'] et $droits_acces['Utilisateur Adhérent'] sont mis à la valeur 1, le nom de l'adhérent est lui dans la variable $name

Voilà comment ma session est remplie :

[code: php]
        $_SESSION["valid"]=$valid;
    $_SESSION["username"]=$username;
    $_SESSION["name"]=$name;
    $_SESSION["droits_acces"]=$droits_acces;
    $_SESSION["compostage"]=$date_maj;

[/code]

As-tu une réponse à ma question "Est ce bien du code interprété que je récupère sur second-site.net et non du code PHP brut dans ma variable $content après l'exécution de CURL ?

Merci encore de te pencher sur mon problème.
Jean-Claude l'ancien

Hors ligne

#6 16-09-2010 15:39:54

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : Synchronisation d'un menu entre deux sites

Quand je me connecte sur second-site l'information indiquant que je suis connecté apparait sur second site ce qui est normal et doit apparaitre aussi si je me rends sur premier-site

Vu que tu n'utilises pas le même support, ni que le site 1 interroge la session du site 2 et inversement, je ne vois pas comment tu veux passer l'information....
Vu que tu dis avoir ce script, explique moi où se fait l'échange d'info entre ces 2 sites ??


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

#7 16-09-2010 16:17:10

jcnconsultant
Membre
Inscription : 06-09-2010
Messages : 9

Re : Synchronisation d'un menu entre deux sites

C'est la fonction http_fetch_url, sur premier-site, qui récupère l'information au travers de la fonction PHP curl sur second-site

Voir mon script au début de cette discussion

Cordialement

Dernière modification par jcnconsultant (16-09-2010 16:32:23)

Hors ligne

Pied de page des forums