2014-05-10 5 views
0

J'ai créé 2 sites Web qui utilisent un système de connexion et tout fonctionne correctement sur les deux. L'utilisateur peut se connecter et se déconnecter des deux. J'utilise xampp et j'ai deux sites ouverts dans Chrome dans deux onglets. Sur les deux sites, j'ai l'adresse e-mail de l'utilisateur affiché lorsque l'utilisateur se connecte. Le problème est lorsque je me connecte au site Web A al le passer au site Web B et actualiser la page Je suis connecté sur ce site avec l'adresse e-mail que j'ai connecté avec sur le site Web A. Cette adresse qui s'affiche est également affichée lorsqu'il n'y a aucun compte associé au site Web approprié. Ma question est de savoir comment restreindre la session au seul site Web.Les sessions s'appliquent sur plusieurs sites Web

C'est l'action de connexion

<?php 
include 'db.inc'; 
session_start(); 
$UserEmail =$_POST["EmailAddress"]; 
$UserPassword =$_POST["Password"]; 
$query = "SELECT * FROM members WHERE EmailAddress = '$UserEmail' 
     AND password = '$UserPassword' "; 

$connection = mysql_connect($hostname, $username, $password) or die ("Unable to connect!"); 
mysql_select_db($databaseName) or die ("Unable to select database!"); 
$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error()); 
// see if any rows were returned 
if (mysql_num_rows($result) > 0) { 
    $_SESSION["authenticatedUser"] = $UserEmail; 
     // Relocate to the logged-in page 
    header("Location: Index.php"); 
    } 
    else 
    { 

    $_SESSION["message"] = "Could not log in as $UserEmail " ; 
    header("Location: Login.php"); 
    }  
mysql_free_result($result); 
mysql_close($connection); 

?> 

Et c'est lorsque l'utilisateur est connecté.

<?php 
session_start(); 
if (!isset($_SESSION["authenticatedUser"])) 
{ 
    $_SESSION["message"] = "Please Login"; 
    header("Location: Login.php"); 
} 
else 
{ ?> 

C'est là l'adresse e-mail de l'utilisateur est affiché

<div class="Login"> 
<ul> 
<?php if(isset($_SESSION['authenticatedUser']) && $_SESSION['authenticatedUser'] != null) {?> 
<li><a href="ProfilePage.php">Welcome <?php echo $_SESSION["authenticatedUser"] ?></a> </li> 
    <li><a href="logout.php"><span>Log Out</span></a></li> 
<?php } else {?> 
<li><a href="login.php"><span>Log In</span></a></li> 
<?php } ?> 

Espoir Tout cela est pertinent!

+0

Je suppose qu'ils s'exécutent tous les deux sur la même machine sous la même URL? Pourriez-vous donner plus de détails sur la configuration? – pintxo

+0

oui ils sont tous les deux sur la même machine et j'utilise xampp et j'y accède via localhost. – Kie21

+0

Donc c'est l'événement même URL, juste des chemins différents non? – pintxo

Répondre

0

Une session est généralement gérée du côté du navigateur par un cookie. Un cookie a un domaine: le site et le chemin auxquels le cookie s'applique. Regardez les cookies qui sont définis dans votre navigateur; Le cookie de session de votre site a probablement un domaine qui s'applique à vos deux sites Web.

Vous devez vous assurer que le chemin d'accès au cookie de session de chaque site est suffisamment spécifique pour que l'autre site ne le récupère pas.

+0

Merci d'avoir éclairci les choses pour moi! – Kie21

Questions connexes