Потому что как я понял после момента редиректа на сайт фейсбука и получения ГЕТ кода от него происходит создание новой сессии а старая при этом тоже активна и таким образом одновременно открыты 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 с которого пришли для получения данных из фейсбука, друзья помогите разобраться почему прерывается сессия и как этот момент обойти, спасибо всем отозвавшимся