Php 为什么我没有登录?

Php 为什么我没有登录?,php,facebook,Php,Facebook,我用手机和笔记本电脑登录了facebook。但是,当我在这些设备上运行以下脚本时 config.php <?php require_once 'facebook.php'; $facebook = new Facebook(array( 'appId' => 'myAppId', 'secret' => 'myAppSecret', 'cookie' => true, )); ?> 和index.php <?php require_once 'config.

我用手机和笔记本电脑登录了facebook。但是,当我在这些设备上运行以下脚本时

config.php

<?php
require_once 'facebook.php';
$facebook = new Facebook(array(
'appId' => 'myAppId',
'secret' => 'myAppSecret',
'cookie' => true,
));
?>
和index.php

<?php
require_once 'config.php';
/* Get a valid session */
$session = $facebook->getUser();
$me = null;
if($session) {
/* Check if session is valid */
$me = $facebook->api('/me');
}
if ($me) {
echo 'User is logged in and has a valid session';
}
else {
echo 'Session expired or user has not logged in yet. 
Redirecting...';
echo '<script> top.location.href="'.$facebook->getLoginUrl()
.'";</script>';
}
?>
我明白了

会话已过期或用户尚未登录。 重定向

然而,在我登录这个网站之后http://facebook.stackoverflow.com/ 通过笔记本电脑上的facebook,我现在可以

用户已登录并具有有效会话


为什么会这样?

现在我不知道facebook.stackoverflow.com是做什么的,但是你的脚本不能使用其他应用程序/浏览器的cookies是有道理的。cookie只是本地数据的一小部分,但每个浏览器都以不同的方式在不同的位置存储它。登录浏览器并不意味着您的脚本可以使用相同的存储凭据。

现在我不知道facebook.stackoverflow.com做什么,但您的脚本不能使用其他应用程序/浏览器的cookie是有道理的。cookie只是本地数据的一小部分,但每个浏览器都以不同的方式在不同的位置存储它。登录浏览器并不意味着您的脚本可以使用这些相同的存储凭据。

不确定是否希望您的appid和机密出现在那里,让所有人都能看到……如果appid和机密不是傻瓜,您应该明确地将其编辑掉。太晚了,永久捕获它们。应用程序Id是一个公共项目,不重要……但秘密密钥是您应该在lock-n-key下持有的。我建议在坏人使用你的应用程序之前,去你的应用程序生成一个新的密钥。@DMCS我没有在Facebook上编码,所以我不确定。但我想至少,两者都在上面比一个或另一个更糟糕。不确定你想让所有人都看到你的appid和secret…如果appid和secret不是傻瓜,你应该明确地编辑出来。太晚了,永久捕获它们。应用程序Id是一个公共项目,不重要……但秘密密钥是您应该在lock-n-key下持有的。我建议在坏人使用你的应用程序之前,去你的应用程序生成一个新的密钥。@DMCS我没有在Facebook上编码,所以我不确定。但我想至少,两者都在上面比一个或另一个更糟糕。我如何使用scriptPHP访问我的Facebook会话呢?我通过笔记本电脑上的IE和手机上的Android本机浏览器登录Facebook。如何使用scriptPHP访问Facebook会话?我通过笔记本电脑上的IE和手机上的Android本机浏览器登录Facebook。