1) Очевидно, используйте одно и то же хранилище сеансов для обоих доменов (файлы, база данных, memcached, обычные подозреваемые.
2) Если после session_start () $ _SESSION пуст, создайте массив «все домены» в сеансе (сделайте это на каждом домене, независимо от того, какой это).
$_SESSION['all_domains'] = array(
'domain1.com' => true, //<= current domain the customer is on,
'domain2.com' => false, //other domain, no cookie for it yet.
'domain2.com' => false); //repeat for all domains needed
3) Создайте сценарий установки сеанса на всех доменах (назовем его 'sesset.php':
<?php
if(isset($_GET['sessid']){
session_id($_GET['sessid']);
session_start();
//also, check here for the domains:
if(!isset($_SESSION['all_domains'])){
//set the array as before, flag this domain as true.
} else {
$_SESSION['all_domains'][$_SERVER['HTTP_HOST']] = true;
//you might want to set a custom domainname instead of HTTP_HOST, so you won't get doubles from domain with & without www. and so on.
}
}
?>
4) На каждой мыслимой странице php HTML поместите это где-нибудь ближе к концу тела:
<?php
foreach($_SESSION['all_domains'] as $domain => $domainset){
if(!$domainset){
echo '<img src="http://'.$domain.'/sesset.php?sessid='.session_id().' width="1" height="1"/>';
}
}
?>
Не полностью защищен, но достанется почти всем пользователям. Конечно, можно сделать это с помощью каскада перенаправления вместо «скрытых изображений», но поисковые роботы (google и др.) Очень запутываются, особенно если они не помнят cookie и застряли, перенаправляя их снова и снова.