[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: можно ли проверить открыта ли сессия
imediasun
Есть ли возможность проверить существует ли открытая сессия и записать туда данные?
Потому что как я понял после момента редиректа на сайт фейсбука и получения ГЕТ кода от него происходит создание новой сессии а старая при этом тоже активна и таким образом одновременно открыты 2 сессии подскажите, друзья, как быть в таком случае (повторяюсь только на одном из двух компов возникает єта проблема, второй отрабатывает отлично)
Первый контроллер Pages в котором должны отображаться сессионные данные после их определения в контроллере Auth

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Pages extends CI_Controller {

public function __construct()
{
parent:: __construct();
$this->load->model('pages_model');
$this->load->model('news_model');
$this->load->model('ad_model');
session_start();
}

public function show($page_id)
{
/* $this->session->unset_userdata('username'); */

//Формируем массив для передачи в вид

/* $data=array(); */
/* $this->session->sess_destroy(); */



$data['main_info']= $this->pages_model->get($page_id); //Массив по одной странице
$data['news']= $this->news_model->get_news_main(); //Массив по новостям
$data['ad']= $this->ad_model->get_ad_main(); //Массив по объявлениям
$userdata=$this->session->userdata('username');
if (isset($userdata)){
$data['session_user_name'] = $this->session->userdata('username'); //Массив по session vk
/* echo session_id();

echo $_SESSION['first_name']; */

$all_data = $this->session->all_userdata();
print_r ($all_data);

}
switch ($page_id)
{
//Если страница Главная
case 'index':

$name='pages/main_page';
$this->display_lib->user_page($data);



break;
case 'contacts':
$name='pages/contacts_page';
$this->display_lib->user_page($data,$name);

break;
}
}



и контроллер Auth в котором происходит получение данных из фейсбука по ссылке из вида который,вид, вызывается из контроллера Pages

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Auth extends CI_Controller {

public function vk()
{

$client_id = '3623742'; // ID приложения
$client_secret = 'G8DonhTnhXUDexZHnLMw'; // Защищённый ключ
$redirect_uri = 'http://exportgrain.org/auth/vk/'; // Адрес сайта

$url = 'http://oauth.vk.com/authorize';

$params = array(
'client_id' => $client_id,
'redirect_uri' => $redirect_uri,
'response_type' => 'code'
);
/* echo "vk"; */
$this->input->get('code',TRUE);
/* var_dump($_GET); */
if (isset($_GET['code'])) {

$result = false;
$params = array(
'client_id' => $client_id,
'client_secret' => $client_secret,
'code' => $_GET['code'],
'redirect_uri' => $redirect_uri
);

$token = json_decode(file_get_contents('https://oauth.vk.com/access_token' . '?' . urldecode(http_build_query($params))), true);

if (isset($token['access_token'])) {
$params = array(
'uids' => $token['user_id'],
'fields' => 'uid,first_name,last_name,screen_name,sex,bdate,photo_big',
'access_token' => $token['access_token']
);


$userInfo = json_decode(file_get_contents('https://api.vk.com/method/users.get' . '?' . urldecode(http_build_query($params))), true);
if (isset($userInfo['response'][0]['uid'])) {
$userInfo = $userInfo['response'][0];
$result = true;
}
}




if ($result) {
$this->session->set_userdata('username',$userInfo['first_name']);

header ("Location:".$_SERVER['HTTP_REFERER']);
}

}
}



}


И, как вы видите происходит редирект опять на pages/show/index с которого пришли для получения данных из фейсбука, друзья помогите разобраться почему прерывается сессия и как этот момент обойти, спасибо всем отозвавшимся
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.