que tiene un dominio principal: main.com
, subdominios: test1.main.com
, test2.main.com
y otros dominios one.com
, two.com
.autenticación de PHP con múltiples dominios y subdominios
Ahora es el hecho como estos:
ini_set("session.cookie_domain", ".main.com");
$domain = 'main.com';
login.php
$user = $db->query("SELECT id, login FROM users WHERE email=? AND password=?",
array($email, $password), "rowassoc");
if($user)
{
$_SESSION['user_id'] = $user['id'];
$_SESSION['user_name'] = $user['login'];
$time = 100000;
setcookie('email', $email, time() + $time, "/", "." . $domain);
setcookie('password', $password, time() + $time, "/", "." . $domain);
header('Location: http://' . $user['login'] . "." . $domain);
exit;
}
añaden en cada página:
if(!isset($_SESSION['user_id']))
{
if(isset($_COOKIE['email']) && isset($_COOKIE['password']))
{
$email = $_COOKIE['email'];
$password = $_COOKIE['password'];
$user = $db->query("SELECT id, login FROM users WHERE email=? AND password=?",
array($email, $password), "rowassoc");
if($user)
{
$_SESSION['user_id'] = $user['id'];
$_SESSION['user_name'] = $user['login'];
}
}
}
else
{
$user = $db->query("SELECT id, login FROM users WHERE id=?",
array($_SESSION['user_id']), "rowassoc");
if(!$user)
{
setcookie('email', '', time() , "/", "." . $domain);
setcookie('password', '', time() , "/", "." . $domain);
unset($_SESSION['user_id']);
session_destroy();
setcookie("PHPSESSID","",time(), "/", "." . $domain);
}
else
{
$_SESSION['user_id'] = $user['id'];
$_SESSION['user_name'] = $user['login'];
}
}
logout.php
if(isset($_SESSION['user_id']))
{
setcookie('email', '', time() , "/", "." . $domain);
setcookie('password', '', time() , "/", "." . $domain);
unset($_SESSION['user_id']);
unset($_SESSION['user_name']);
session_destroy();
setcookie("PHPSESSID","",time(), "/", "." . $domain);
header('Location: /main');
exit;
}
Pero funciona solo en el dominio main.com
y sus subdominios test1.main.com
, test2.main.com
.
Necesito de alguna manera guardar la sesión y en otros dominios one.com
, two.com
.
Cómo hacer la autenticación segura, si hay soluciones, realmente me confunde, por favor, dígale con el ejemplo.
Necesitamos ** manera ** más detalles sobre lo que está tratando de lograr. ¿Qué tiene que ver la autenticación con los diferentes dominios? Por favor edite su pregunta para agregar más detalles. – webbiedave
Lo siento. Сode agregado. – swamprunner7
Duplicado de http://stackoverflow.com/questions/244008/how-do-i-maintain-php-sessions-across-multiple-domains-on-the-same-server – Brad