2016-09-02 37 views
1

我正面临一些奇怪的问题。会话是在后台创建并打印的,但在前台不能工作

此问题发生在服务器上。自从上次5-6天以来,我面临着这个问题。直到最近1年,它一直在为我工作。

当我调用登录API时,如果用户凭证是正确的,那么我创建一个会话。

这里是我的代码:

if ($user){ 
    if ($user['is_active'] == 1){ 
     global $user_data; 
     $user_data = $user; 
     $response["error"] = false; 
     $_SESSION['user_data'] = $user; // -- session is create 
     print_r($_SESSION); // session is print. 

     $_SESSION['is_login'] = 'No'; 
     unset($_SESSION['sessionX']); 
     $response['user_id'] = $user['user_id']; 
     $response['name'] = $user['name']; 
     $response['email'] = $user['email']; 
     $response['apiKey'] = $user['api_key']; 
     $response['createdAt'] = $user['created_date']; 

    } else { 
     $response['error'] = true; 
     $response['message'] = 'Your Account is Not Active'; 
    } 
} else { 
// user credentials are wrong 
    $response['error'] = true; 
    $response['message'] = 'Login failed. Incorrect credentials'; 
} 

这部分的print_r:

Array 
(
    [slim.flash] => Array 
     (
     ) 

    [db_name] => arcade_intecigar 
    [user_data] => Array 
     (
      [user_id] => 1 
      [name] => zzz 
      [email] => [email protected] 
      [api_key] => 3fef39209b3d03039cdb81d39566eb66 
      [lang_id] => en_US 
      [created_date] => 0000-00-00 00:00:00 
      [profile_pic] => "" 
      [img] => 1461269872mk-ok.png 
      [subscription_id] => 20 
      [is_active] => 1 
      [role_id] => 1 
      [delete_permission] => 1 
      [phone_number] => +14507013 
      [country_code] => 1 
      [total_usage_funds] => 0.0024999999441206 
      [total_available_funds] => 0.99750000238419 
      [paid] => trial 
      [currency] => USD 
     ) 

) 

登录后,我重定向我的应用程序仪表板页面,并检查是否会话可用与否,但奇怪的是会话不可用。它总是将我重定向到登录页面。

看下面的代码。

print_r($_SESSION); // it is display a blank 
if (!isset($_SESSION['is_login']) && !isset($_SESSION['is_lock'])) { 
    echo "<script>window.location='" . SITE_URL . "login.php?redirect=" . $_SERVER['REQUEST_URI'] . "';</script>"; 
} 
if (isset($_SESSION['is_login']) && $_SESSION['is_login'] == 'NO' || $_SESSION['is_login']== 'No') { 
    echo "<script>window.location='" . SITE_URL . "login.php?redirect=" . $_SERVER['REQUEST_URI'] . "';</script>"; 
} 

print_r的这部分:

Array ([db_name] => arcade_intecigar) 
+1

哪里是你的'在session_start()'? – Mike

+0

此外,您应该可以散列您的API密钥,而不是以纯文本格式存储它们。试试'password_hash()'。 – Mike

+0

我的会话在config.php文件中开始 –

回答

相关问题