Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.07.2017, 11:42   #1
Danil005
 
Регистрация: 19.07.2017
Сообщений: 3
По умолчанию Node.Js + PHP

Вообщем, мне нужно получить авторизацию от PHP части, для этого я делаю так:
Код:
const fs = require('fs');
var requestify = require('requestify');
var mysql = require('mysql');
var express = require('express'); 
var request = require('request');

var app = express();
var options = {

  key: fs.readFileSync('/home/a200029/conf/web/ssl.vixed.ru.key'),
  cert: fs.readFileSync('/home/a200029/conf/web/ssl.vixed.ru.crt'),
  ca: fs.readFileSync('/home/a200029/conf/web/ssl.vixed.ru.ca'),
  requestCert: true,
  rejectUnauthorized: false,
}

var server = require('https').Server(options, app); 
var io = require('socket.io')(server); 
io.set('log level', 1);
var log4js = require('log4js');
var logger = log4js.getLogger(); 
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root_test',
  password : '1234567890',
  database : 'test',
});
var port = 3000;
   

   connection.query("SET SESSION wait_timeout = 604800");
  
   var requests = {
     url: 'https://vixed.ru/system/ajaxs/get_user_array.php',
     headers: {
       'User-Agent': 'request',
       'cookie': 'request'
     }
   };



   logger.debug('Скрипт был запущен с портом:'+port);
   server.listen(port);


   io.on('connection', function (socket) {
    request(requests, function (error, response, body) {
       
       logger.debug('Пользователь подключился: '+body);
    
       
       socket.on('message', function(msg){
       io.sockets.emit('messageToClients', msg, response);

     });
     });
});
Запрос приходит сюда: https://vixed.ru/system/ajaxs/get_user_array.php (Его можно даже посмотреть, только для вывода необходимо авторизоваться)
Сайт: https://vixed.ru/
Логи и пароль: Demo
Но при возвращение, выводит так:

Дело в том, что я не могу вывести данные из глобальной переменной PHP - $_SESSION.
Код php файла:
PHP код:
echo json_encode(['username'=>User::get_username(), 'id'=>'1']); 

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 19.07.2017 в 11:56.
Danil005 вне форума Ответить с цитированием
Старый 19.07.2017, 11:45   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Danil005 Посмотреть сообщение
Дело в том, что я не могу вывести данные из глобальной переменной PHP - $_SESSION.
каким образом связан объект User с переменной $_SESSION ?
ну и, по всей видимости, объект User не иницилизирован, вот null и получаете.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.07.2017, 11:54   #3
Danil005
 
Регистрация: 19.07.2017
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
каким образом связан объект User с переменной $_SESSION ?
ну и, по всей видимости, объект User не иницилизирован, вот null и получаете.
Там класс по определению пользователя, впрочем говоря вот так:
PHP код:
public function get_username() {
      if( empty(
$this->id) ) {
        if( 
$this->isAuth() ) {
            return 
$this->get_session_username();
        }
      } else {
          if( 
$this->c_user() ) return $this->get_session_username(); else
          return 
$this->module->xss($this->module->db->getOne("SELECT `user` FROM ?n WHERE ?n=?s"'users''id'$this->id));
      }
    }
public function 
get_session_username() {
    return 
$this->module->xss($_SESSION['USERNAME']);
  } 

Последний раз редактировалось Danil005; 19.07.2017 в 12:18.
Danil005 вне форума Ответить с цитированием
Старый 19.07.2017, 15:22   #4
Danil005
 
Регистрация: 19.07.2017
Сообщений: 3
По умолчанию

Мне помогут? Уже второй день не могу найти решение. Есть вариант, но это костыль полный... Просто при авторизации создавать файл, в котором будет сессия, а при завершение сессии, он удалялся...
Danil005 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Актуально ли? Backend на Node.JS или на php? Стоит ли изучать NodeJS? Feeddie Общие вопросы Web 20 17.06.2017 15:04
Онлайн игра на Node.js + SockJS или socket.io / Node.js freerunner JavaScript, Ajax 2 17.04.2014 11:01