Переменные сеанса не будут запомнены на следующей странице

0

Я пытаюсь построить игру с угадыванием слов, где люди вводят свое имя, и им дают 5 попыток угадать игру (первое письмо бесплатное).

У меня была игра, в которой все отлично и денди, но я решил добавить страницу '' start '', где люди могут вводить свои имена и где случайное слово уже предварительно выбрано для реальной игровой страницы. (Это rand слово из массива из 20 слов)

Но теперь, по какой-то причине, каждый раз, когда у меня появляются люди, они сразу проскакивают мимо игрового экрана и сразу же перескакивают на экран win... Он должен показывать имя и выигрышное слово на этом экране, но это не так, t показать любой из них, он просто пустой.

Поэтому я предполагаю, что по какой-то причине эти две переменные не запоминаются после ввода имени, так как игра сравнивает значение null с нулем и игра "выиграна"...

Очевидно, этого не должно быть. Из массива следует выбрать слово и ввести session_variable. То же самое происходит с именем, которое вы вводите в форму.

Увидев, что это трехстраничный PHP-скрипт, я буду размещать ссылки на Hastebin, а не публиковать фрагменты здесь. Извините за это заранее, но я думаю, что это будет работать лучше...

Начальный экран: http://hastebin.com/orisazubis.xml

Экран игры: http://hastebin.com/akuzekawil.php

  • 0
    так твой код в одном php файле?
  • 0
    Нет, все три страницы находятся в своих собственных файлах PHP. Ссылки друг на друга работают корректно.
Теги:
session-variables

2 ответа

1
Лучший ответ

Я не просмотрел все это, но почему бы не попробовать $_SESSION с тех пор, как заполняется PHP? Вы знаете, что переменные PHP чувствительны к регистру?

  • 0
    Итак, вы говорите, что вам нужно не только писать имена переменных с учетом регистра, но и $ _SESSION? Я никогда не думал об этом, и после попытки, это на самом деле работает! Спасибо, чувак, я узнал что-то новое и чувствую себя глупо :)
0

замените $session и $_session на $_SESSION везде

в вашей:

http://hastebin.com/orisazubis.xml изменить:

if($random == null) {
        $session = $woorden[rand(0,19)];
}

в

if($random == null) {
        $_SESSION['random'] = $woorden[rand(0,19)];
}

и, наконец, в файле http://hastebin.com/akuzekawil.php

изменение:

$random = $_session['random'];

в

if (isset($_SESSION['random'])) {
$random = $_SESSION['random'];
}else{
$random=null;
}

проверьте здесь также:

$_session['naam'] = $_POST['naam'];

изменить на:

   if (isset($_POST['naam']) && !empty($_POST['naam']){
        $_SESSION['naam'] = $_POST['naam'];
} else {
       $_SESSION['naam'] = null;
}

строка обновления:

if($random == $testen){

в

if(!empty($testen) && $random == $testen){

если я правильно понял вашу логику

  • 0
    К сожалению, это не имело заметной разницы. Это все еще пропускает прямо мимо моей страницы игры и к странице победы.
  • 0
    проверьте мой ответ обновление
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню