Попытка передать переменные сеанса PHP в файлы Node JS

Проблема:

В настоящее время я делаю игру, которая требует доступа к значениям базы данных для выполнения файла PHP с помощью ajax. Файл PHP работает, когда я помещаю ссылку в браузер, но не при вызове ajax. Это потому, что переменные сеанса не передаются.

Я не могу изменить index.html на index.php в моей игре Node, потому что это вызывает много проблем, поэтому мне нужен способ передать переменные из моей базы данных в мой javascript без использования прямого кода PHP в моем javascript.


Код:

Вот мой PHP-код:

mysql.php

function __construct() 
{ 

$this->dns= 'mysql:dbname=cashball_accounts;host=localhost;charset=utf8'; 
$this->username= 'myUser'; 
$this->password= 'myPass'; 
$this->db = new PDO($this->dns, $this->username, $this->password); 
} 


public function setCashAmount($cash_amount, $id) 
{ 
$sql = "UPDATE users SET cash_amount = :cash_amount - 0.05 WHERE id = :id"; 
$stmt = $this->db->prepare($sql); 
$stmt->bindParam(':cash_amount', $cash_amount, PDO::PARAM_STR); 
$stmt->bindParam(':id', $id, PDO::PARAM_STR); 
$result = $stmt->execute(); 
return $result; 
} 

} 
?>

subtract5.php

<?php
header('Access-Control-Allow-Origin: http://cashballz.net:3000', false);
include 'mysql.php'; 
session_start(); 

$cash_amount = $_SESSION['cash_amount'];
$userid = $_SESSION['id'];
$_SESSION['cash_amount'] -= 0.05;

$mysql = new Mysql(); 

$result = $mysql->setCashAmount($cash_amount,$userid); 
if ($result) 
{ 
echo "5 cents have been subtracted!"; 
} 
else 
{ 
session_start(); 
session_unset(); 
session_destroy(); 
}
?>

Мой код JS:

    $.ajax({
    type: "POST",
    url: 'http://cashballz.net/game/5game/subtract5.php',
    data: {}, 
    success: function (data) {
        alert(data);
    }
});

Вывод:

Поэтому, когда я помещаю ссылку в браузер, код PHP в порядке и отлично выполняется, но когда я вызываю его из AJAX, файл выполняется, но переменные сеанса не определены.

Что мне делать?

(Я мог бы передать переменные в файл JS и поместить их как данные в AJAX, но я не знаю, как передать переменные сеанса, не имея index.php.

Все мои файлы узлов находятся в другой папке, которая не включает PHP, а файлы PHP находятся в одной папке вместе со всеми другими файлами PHP.

Спасибо за помощь.

"переменные сеанса не передаются". Находятся ли они в разных доменах (видя CORS)? Вы смотрели модули аутентификации для узла? Может быть, токен-подход? Нравится JWT? npmjs.com/package/njwt

ficuscr 27.06.2018 20:35

Они находятся в одном домене, но узел работает на сервере в этом домене (порт 3000). Я думал о создании глобального файла для запуска переменных по всему сценарию, но я не знаю, что для него использовать и будет ли он работать.

Patrick 27.06.2018 21:05

Меня немного смущает вопрос. Вы хотите использовать файл cookie между PHP и Node? Может быть, почитайте немного и сузьте свой вопрос. Это может быть хорошее прочтение: Безопасный обмен данными между php и node.js через cookie

ficuscr 27.06.2018 21:09

Можно ли просто добавить эту строку в мою конфигурацию: AddHandler php5-script .php .html, чтобы я мог просто добавить php в файл html в Node, не меняя его расширения?

Patrick 27.06.2018 21:51

Да, вы можете интерпретировать свои HTML-файлы с помощью PHP. Похоже на плохой дизайн, если вы не можете просто изменить имя в своем приложении. Опять же, не совсем понимая, о чем вы спрашиваете, я напоминаю вам, что могу управлять DOM в веб-браузере. Безопасно ли то, что вы представляете себе? Никогда не доверяйте этим проклятым пользователям.

ficuscr 27.06.2018 22:01

Я не могу изменить index.html на index.php, потому что он находится в узле, поэтому мне нужен способ записать php в index.html для передачи переменной сеанса

Patrick 27.06.2018 22:12
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
291
0

Другие вопросы по теме