2013-06-29 62 views
1

我有一个网站,我有以下文件: - 的index.php - 网页PHP SDK - 重定向错误

F-的login.php - 网页,其中用户重定向至Facebook索要权限

add.php - 在下面给出 - 此页面检查用户是旧的还是新的。如果用户是新的,它会将页面重定向到username-choice.php,否则在设置所需的cookies后将用户重定向到主页面。

username-choice.php - 此页面供NEW用户为自己选择一个用户名。如果设置了cookie - “tempuid”,它会显示正确的页面,否则会显示错误页面“COOKIES未启用!”

问题是,在username-choice.php页面显示错误消息。我无法理解这个问题。我已经为add.php页面提供了我的代码。请告诉我什么是错的。任何帮助,将不胜感激。

以下是我的add.php页面: -

<?php 
include "config.php"; /* contains mysqli_connect */ 
require "src/facebook.php"; /* for facebook login php-sdk */ 
include "app_details.php"; /* app-id and secret */ 
$user = $facebook->getUser(); 
if ($user) { 
    try { 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    error_log($e);/* ERROR TO BE DISPLAYED */ 
    $user = null; 
    } 
} 

$uid=$user_profile['id']; 
$email=$user_profile['email']; 
$fullname = $user_profile['name']; 
$birthday = $user_profile['birthday']; 

if($uid==null){ 
echo "Sanp! Something went wrong"; 
} 

$n=0; 
$result = mysqli_query($con,"SELECT * FROM Users 
WHERE UID='$uid'"); 
/* TO CHECK IF THE USER IS NEW OR OLD*/ 
while($row = mysqli_fetch_array($result)) 
{ 
$n++; 
$username=$row['Username']; 
$ppic=$row['Ppic_url']; 
    } 

if($n>0) 
{ 

    $expire=time()+60*60*24*30; 
    setcookie("name" , "$fullname", $expire); 
    setcookie("uid" , "$uid", $expire); 
    setcookie("logintype", "facebook", $expire); 
    setcookie("username", "$username", $expire); 
    setcookie("ppic", "$ppic", $expire); 
header("Location: http://mysite.com"); 
exit; 
} 
else if($n==0) 
{ 

    $expire=time()+60*60*24*30*365; 
    setcookie("tempname", "$fullname", $expire); 
    setcookie("tempuid" , "$uid", $expire); 
    setcookie("tempemail", "$email", $expire); 
    setcookie("tempbday", "$birthday", $expire); 
    setcookie("tempppic", "$ppic", $expire); 

header("Location: http://mysite.com/username-choice"); 
exit(); 

mysqli_close($con); 
} 

?> 

回答

1

这意味着程序进入最后的if语句。现在,只有当uid为空时,您的网页才能显示“COOKIES NOT ENABLED”。所以,根据我的$ uid是空的。

+0

是的!那是答案。我改变了我的托管服务,问题解决了。 – h2O