Php cURL从多个子域注销(会话_销毁)无效

Php cURL从多个子域注销(会话_销毁)无效,php,session,curl,logout,Php,Session,Curl,Logout,我有多个子域名,比如domain1.example.com、domain2.example.com。我有这些子域的中央数据库;我在登录时(通过ajax)为每个子域创建会话 现在我想当我从任何子域注销时,然后从创建会话的所有子域(会话_destroy)注销。(我有维护会话的子域列表)。Plz帮助您使用cURL从多个子域注销 我正在为子域使用下面的cURL循环代码 $url = 'http://' . $a_domain . ".localhost/panels/login?task=logout"

我有多个子域名,比如domain1.example.com、domain2.example.com。我有这些子域的中央数据库;我在登录时(通过ajax)为每个子域创建会话

现在我想当我从任何子域注销时,然后从创建会话的所有子域(会话_destroy)注销。(我有维护会话的子域列表)。Plz帮助您使用cURL从多个子域注销

我正在为子域使用下面的cURL循环代码

$url = 'http://' . $a_domain . ".localhost/panels/login?task=logout";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);                
$output = curl_exec($ch);
curl_close($ch);
此外,当我在浏览器中直接运行$url时,它可以工作并从该子域注销,但我希望通过cURL在循环中工作

远程子域$URL注销代码

public function logout(){
echo '<br>before destroy <br>'; 
print_r($_SESSION);
session_destroy();
echo'<br>after destroy <br>';
print_r($_SESSION);
}
public函数注销(){
在销毁前回显“
”; 打印(美元会话); 会话_destroy(); 销毁后回显“
”; 打印(美元会话); }
类似

<?php

$domains=array();
$domains[]="a";
$domains[]="b";
$domains[]="c";
$domains[]="d";

foreach($domains as $d)
{
    $url = "http://".$d.".localhost/panels/login?task=logout";
    logout($url);
}

function logout($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);                
    $output = curl_exec($ch);
    curl_close($ch);
}

?>


如果你有所有子域的列表,那么为什么不像你刚才提到的那样在一个循环中逐个调用它们的URL呢?是的,我正在这样做,即通过cURL调用URL列表以注销,但它不起作用(不起作用意味着当我转到下一页或上一页时,会话仍然存在,它一定已被破坏)您是否知道您能够设置会话/cookie,以便它们在单个主域下的子域之间工作。我担心的是如何通过AJAX设置这些会话。我有session.php文件,用于启动和设置会话变量。登录时,我会得到子域列表;通过ajax,我在循环中使用post参数()调用session.php文件。通过这种方式,为每个子域调用session.php会创建每个子域的独立会话。感谢您的回复…在cURL发送请求的远程子域函数中,我已经在session\u destroy命令之前和之后打印了$\u会话,但结果是一样的。。该函数中是否有我遗漏的内容……?公共函数注销(){echo'
在销毁前
”;打印(会话);会话(会话)销毁();打印(会话);echo'
在销毁后
;打印(会话);}将其附加到您的问题中