来自多个子域的cURL注销(session_destroy)不起作用

时间:2013-01-22 06:32:14

标签: php session curl logout

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

现在我希望当我从任何子域注销时,我会从已创建会话的所有子域(session_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);
}

1 个答案:

答案 0 :(得分:1)

这样的东西
<?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);
}

?>