Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 19.07.2017, 12:42   #1
Danil005
Новичок
 
Регистрация: 19.07.2017
Сообщений: 3
Репутация: 10
По умолчанию 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 в 12:56.
Danil005 вне форума   Ответить с цитированием
Старый 19.07.2017, 12:45   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,033
Репутация: 5228
По умолчанию

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

Цитата:
Сообщение от 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 в 13:18.
Danil005 вне форума   Ответить с цитированием
Старый 19.07.2017, 16:22   #4
Danil005
Новичок
 
Регистрация: 19.07.2017
Сообщений: 3
Репутация: 10
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Актуально ли? Backend на Node.JS или на php? Стоит ли изучать NodeJS? Feeddie Общие вопросы Web 20 17.06.2017 16:04
Требуется PHP (YII + JS, node.js, angularjs) программист gooodwriter Работа на постоянной основе - Вакансии 0 07.03.2016 14:04
Senior Node.js разработчик Eugenika Работа на постоянной основе - Вакансии 0 29.07.2014 19:38
Онлайн игра на Node.js + SockJS или socket.io / Node.js freerunner JavaScript, Ajax 2 17.04.2014 11:01


16:46.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru