mysql — Отправка баллов из AS3 в PHP / SQL — # Ошибка 2101

У меня были проблемы с публикацией баллов от Игра Flash CC AS3 к PHP страница с База данных SQL.
Я получал ERROR #2101 сообщения в моем окне вывода.
После долгих поисков этой проблемы мне посоветовали проверить, был ли PHP проблемой.

Я создал очень простой файл Flash, код (я заменил мой фактический адрес сайта ниже):

import flash.events.MouseEvent;
import flash.net.URLRequest;
import flash.net.URLVariables;
import flash.net.URLLoader;
import flash.events.Event;

var userName = "Jamie";
var newScore = 1300123;

btn_submit.addEventListener(MouseEvent.CLICK, submitted);

function submitted(e:MouseEvent) {
var myrequest:URLRequest = new URLRequest("http://mysiteaddresshere.com/test_scores.php");
myrequest.method = URLRequestMethod.POST;
var variables:URLVariables = new URLVariables();
variables.player = userName;
variables.score = newScore;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, dataOnLoad);
loader.load(myrequest);
}

function dataOnLoad(evt:Event) {
MC_success.alpha = 100;
}

Код PHP выглядит следующим образом:

<?php

include("db.php");

// Connect to the MySQL server
$link = mysql_connect($host, $user, $pass);
if(!$link) {
die('Failed to connect to server.'.mysql_error());
}

$db = mysql_select_db($database);
if(!$db) {
die("unable to select database");
}

$gameName = "ietul";
$employeeID = 123456;
$player = $_POST['userName'];
$score = $_POST['newScore'];

//Create INSERT query
$qry = "INSERT INTO highScore (gameName,employeeID,player,score) VALUES('$gameName','$employeeID','$player','$score')";
$result = @mysql_query($qry);
echo "writing = OK";
exit();
mysql_close();

?>

include включает в себя соединение и детали таблицы для этой базы данных.
Сама игра должна включать gameName а также employeeID переменные, но для тестирования я здесь жестко их закодировал.
Я загружаю игру, html и связанные файлы на тот же сайт, и когда я играю на нем, моя база данных обновляется, добавляя данные gamename и employeeID, но поля игрока и счета остаются пустыми.

Я пробовал разные версии этого, используя метод GET, формат данных TEXT среди других.

Я смотрю на это и исследую эту проблему уже более 1 недели … если кто-нибудь там скажет мне, что я делаю неправильно, я был бы рад услышать от вас!

Я относительно новичок в расчесывании Flash, PHP и SQL, поэтому извините, если я что-то упускаю из виду!

Еще раз спасибо,
сойка

0

Решение

Попробуй это :

Код AS3:

btn_submit.addEventListener(MouseEvent.CLICK, submit_on_Press)

function submit_on_Press(e:MouseEvent) {

var variables:URLVariables = new URLVariables()
variables.player = 'player_name'
variables.score = 1526

var request:URLRequest = new URLRequest('http://127.0.0.1/score/score.php')
request.method = URLRequestMethod.POST
request.data = variables

var loader:URLLoader = new URLLoader()
loader.dataFormat = URLLoaderDataFormat.VARIABLES
loader.addEventListener(Event.COMPLETE, data_on_Load)
loader.load(request)

}

function data_on_Load(e:Event) {
trace(e.target.data.writing)
}

Код PHP:

<?php

if(count($_POST) != 2) die();

$player = trim($_POST['player']);
$score = intval($_POST['score']);

$link = mysqli_connect('127.0.0.1', 'root', '', 'test') or die('Error ' . mysqli_error($link));

$query = "INSERT INTO test(player, score) Values('".$player."', ".$score.")";

$result = $link->query($query);
$link->close();

echo 'writing='.($result ? 'ok' : 'error');

?>

Для PHP я рекомендую вам использовать MySQLi потому что mysql устарела.

1

Другие решения

Вам нужно отправить переменные

myrequest.data = variables; //<------- THIS

Добавьте это в свой код

function submitted(e:MouseEvent) {
var myrequest:URLRequest = new URLRequest("http://mysiteaddresshere.com/test_scores.php");
myrequest.method = URLRequestMethod.POST;
var variables:URLVariables = new URLVariables();
variables.player = userName;
variables.score = newScore;
myrequest.data = variables; //<------- THIS
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, dataOnLoad);
loader.load(myrequest);

}

0

По вопросам рекламы [email protected]