Попытка передать переменные сеанса PHP в файлы JS узла - PullRequest
0 голосов
/ 27 июня 2018

Проблема:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...