PHP сессия не работает с JQuery Ajax?
Обновление, решено: После всего этого я узнал, что я вызываю старую версию своего кода в обновлении ajax. 'boardControl.php» вместо 'boardUpdate.php» Это те ошибки, которые делают программирование увлекательным.
я пишу браузерГомоку игра. У меня есть оператор ajax, который позволяет игроку сыграть пьесу.$(document).ready(function() {
$("td").live('click',function(){
var value = $(this).attr('id');
$.get('includes/boardControl.php',{play: value, bid: bid});
});
});
значение = расположение доски
ставка = идентификатор доски
Перед созданием логина пользователя для идентификации игрока у php на стороне сервера было временное решение. Это будет вращать состояние фигуры для квадратов при нажатии вместо того, чтобы знать, для какого игрока их создавать.
После создания входа в систему я установил переменную сеанса для игрокаS ID. Я надеялся прочитать идентификатор сеанса из php во время запроса ajax и выяснить, из какого они игрока.
session_start();
...
$playerId = $_SESSION['char'];
$Query=("SELECT p1, p2 FROM board WHERE bid=$bid");
$Result=mysql_query($Query);
$p1 = mysql_result($Result,0,"p1");
$p2 = mysql_result($Result,0,"p2");
$newPiece = 0; //*default no player
if($playerId == $p1)
$newPiece = 1;
if($playerId == $p2)
$newPiece = 2;
По какой-то причине, когда я запускаю полноценное веб-приложение, фрагменты все еще циклически работают, даже после того, как я удалил код, чтобы заставить их работать. Кроме того, после входа в систему, если я вручную загружаю страницу php в браузере, она корректно изменяет базу данных (где воспроизводятся только фрагменты, принадлежащие этому проигрывателю) и выводит правильные результаты.
Мне кажется, что сессия не переносится при использовании с Ajax. Тем не менее, поиски в Google говорят мне, что сессии работают с Ajax.
Обновление: яЯ пытаюсь предоставить больше информации.Вход в систему работает правильно. Мое удостоверение личности распознано, и я распечатал его рядом с доской, чтобы убедиться, что я его получал правильно.
Запрос Ajax обновляет доску. Переданные значения верны и подтверждены с помощью firebug 'с консоли. Однако вместо того, чтобы ставить фигуры только для игрока, они принадлежат ему, но фигура констатирует (0,1,2).
Когда вы вручную просматриваете файл boardUpdate.php и вводите те же значения, которые были отправлены из Ajax, результаты отображаются в echo 'Ответ ed указывает, что соответствующий фрагмент воспроизводится каждый раз, как и предполагалось.
Те же результаты на моем ноутбуке после новой загрузки Firefox.
Вручную просматривая файл boardUpdate.php без входа в систему, прежде чем вручную, оставьте доску без изменений (как и предполагалось, когда в сеансе не было найдено ни одного пользователя) .I '
Мы дважды проверили, что session_start () находится в php-файлах, и дважды проверили переменные идентификатора сессии.
Надеюсь, эта дополнительная информация поможет, яУ меня заканчиваются идеи, что тебе сказать. Должен ли я загрузить полный код?
Обновление 2:После проверки ответа Ajax в fire-bug, я понял, чтоиграть' запрос не дает результата, и доска не обновляется до следующегоОбновить', Я'Я все еще смотрю на это, но яВыложу это здесь и вам, ребята.
boardUpdate.php Примечательные места: функция обновления доски (строка 6) функция Place Piece (строка 20) функция boardUpdate ($ turnCount) (строка 63)
Пожалуйста, помогите, яБуду рад предоставить больше информации, если это необходимо. Заранее спасибо =)