переменные php $ _SESSION не переносятся из флеш игры? - PullRequest
0 голосов
/ 05 июля 2011

Итак, я сделал эту флеш игру и все соответствующие переменные введены.Если пользователь вошел в систему, он ДОЛЖЕН ввести переменную $ _SESSION [user] в базу данных mysql, чтобы сохранить счет пользователя.По какой-то странной причине он этого не делает.Что делает его еще более странным, так это то, что я могу правильно отобразить переменную $ _SESSION [user], но при броске в базу данных mysql возвращает NULL (как 0).Вот код, который выполняет всю обработку.

<?php 
session_start();
?>
<html>
<?php
include("../package.php");      //stuff for UI

echo $_SESSION[user];           //this works

if($_SESSION[user]){
mysql_query("INSERT INTO `DB`.`TABLE` (`user`,`type`,`game`,`score`) VALUES ('$_SESSION[user]', '$_POST[type]', '$_POST[g]', '$_POST[score]')");
?>
     //Congratulations message in HTML
<?php
}
else{
?>
   //Tells you to login (the 'else' statement to if($_SESSION[user])) also in HTML
<?php
}
?>

Я не вижу ничего плохого ...

1 Ответ

0 голосов
/ 05 июля 2011

Измените свою логику на это для целей отладки:

$sql = <<<EOL
INSERT INTO `DB`.`TABLE` (`user`,`type`,`game`,`score`)
VALUES ('$_SESSION[user]', '$_POST[type]', '$_POST[g]', '$_POST[score]')
EOL;

$result = mysql_query($sql) or die("query: $sql\n\n" . mysql_error());

Это даст вам полный текст сгенерированного запроса, а также точное сообщение об ошибке, сгенерированное MySQL.Если запрос выполняется успешно, то все продолжается как обычно.Если произошла ошибка, вам скажут, почему.

Скорее всего, ошибка связана с неправильным цитированием значений сеанса:

Вежливый PHP и переведет ваш $_SESSION[user]в $_SESSION['user'] (обратите внимание на кавычки).Но когда вы делаете это из строки в двойных кавычках, все ставки отключаются.

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