Vous n'êtes pas identifié(e).
Pages :: 1
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 :
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
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
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
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
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
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
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
Pages :: 1