看看我是否登录了另一个站点PHP

时间:2011-06-17 21:18:15

标签: php mysql

在Domain.com上,我有一个用户处理程序,可以创建一个会话来告诉他我已登录。

所以在每个页面上我只是这样做:

<?php 
require("http://www.domain.com/handlers/user_handler.php");
if ($user_data['loggedIn'] == 1){
echo "You are logged in!";};
?>

您可以看到我是否已登录我收到一条消息称您已登录。

但是我想知道如果我登录到第一个网站,它将在另一个网站上告诉我们。

例如在Domain2.com上。如果我登录Domain.com,我可以显示一条消息您已登录domain2.com上的domain.com。

我知道我不会在新域名中使用上面相同的代码,但检查该会话是否仍在主域名网站上运行的最佳方法是什么。

如果我没有澄清,请告诉我。

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以创建一个名为user_logged_in.php的不同脚本,该脚本将使用用户ID作为参数,如果该用户已登录则输出1,否则输出0。然后,您可以从任何域调用该脚本。

确保通话安全。也许还包括一个必须具有特定值的密钥才能使脚本响应,或者将调用者的IP检查为domain2.com的IP。

例如,您可以通过以下URL访问脚本:

http://www.domain.com/handlers/user_logged_in.php?id=48&key=SECRET_KEY

然后你会检查user_logged_in.php $_REQUEST['key']是否确实等于SECRET_KEY(虽然这样做更安全),如果是,请检查数据库以查看用户标识为48的是否已登录。

答案 1 :(得分:0)

您在Domain.com上的脚本可能看起来像(假装它叫做login_check.php):

<?php
require("http://www.domain.com/handlers/user_handler.php");
if ($user_data['loggedIn'] == 1) echo "true";
else echo "false";
?>

然后,在Domain2.com上,您将拥有第二个脚本:

<?php
$loggedIn = file_get_contents("domain.com/login_check.php");
if ($loggedIn == "true") {
    // the user is logged in on Domain.com
} else {
    // the user is not logged in
}
?>

希望这有帮助