【发布时间】:2017-01-10 02:27:05
【问题描述】:
我遇到了一些奇怪的问题。
此问题发生在服务器上。自过去 5-6 天以来,我一直面临着这个问题。直到去年,它一直为我工作。
当我调用登录 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] => zzz@abc.com
[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 )
【问题讨论】:
-
你的
session_start()在哪里? -
另外,您可能应该散列您的 API 密钥,而不是以纯文本形式存储它们。试试
password_hash()。 -
我的会话在 config.php 文件中开始
-
是在第二个代码块执行之前还是之后调用?
-
@Mike 第二块代码在仪表板页面中,登录后重定向。
标签: php jquery session session-variables