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

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - 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,229
По умолчанию

Цитата:
Сообщение от 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