Постоянные переменные в PHP после перезагрузки страницы

0

im очень новый для PHP, поэтому, пожалуйста, извините меня, если это глупый вопрос.

Итак, вот сценарий.

Я пишу PHP на одной странице, которая получает случайное слово из массива, скремблирует слово, а затем позволяет пользователю угадать слово.

теперь я использую isset(), поэтому он объявляет переменную, а затем после нажатия на кнопку, она будет вводиться пользователем через _POST().

Теперь проблема в том, что мне нужно, чтобы вычисленная переменная оставалась постоянной, но после перезагрузки страницы она восстанавливает переменную.

есть все равно, я могу пройти мимо этого?

<?php

        function GetShuffWord()
        {
             $arrayName     = array('word1','word2','word3','word4','word5');
             $randWordIndex = rand(0,4);
             $randomWord    = $arrayName[$randWordIndex];
             $shuffledWord = str_shuffle($randomWord);
             return $shuffledWord;
        }

        if(!isset($_POST['Submit']))
        {
            define("shuffledWord", GetShuffWord());
            $tempWord = shuffledWord;

            // showing the user shuffled word
            echo " <h1 style='font-size: 50px' align = 'center'> {$tempWord}
            </h1>";
        }
        else
        {
            $tempWord = shuffledWord;
            echo " <h1 style='font-size: 50px' align = 'center'>{$tempWord} </h1>";
            echo "else part";
        }
    ?>

Другая проблема заключается в том, что если я объявляю переменную в if, я не могу использовать переменную в else с ее повторной генерацией.

  • 0
    Здесь уместно использовать «постоянное» хранилище, возможно, стоит рассмотреть возможность использования сеанса
  • 1
    Пожалуйста, опубликуйте свой существующий код. Решением будет сохранение значения в $_SESSION чтобы оно сохранялось при загрузке страницы. php.net/manual/en/reserved.variables.session.php и session_start()
Показать ещё 3 комментария
Теги:
global-variables
constants

2 ответа

1

Вы можете просто указать значение в виде скрытого поля ввода в своей форме.

<input type="hidden" name="myCalculatedValue" value="<?= $tempWord ?>" />

Затем, когда форма отправлена, вы можете просто получить ее через $_POST['myCalculatedValue']

  • 0
    Спасибо вам большое! Это работает.
  • 0
    Если вы удовлетворены ответом, можете ли вы проголосовать за него и отметить его как ответ?
0

Вы можете использовать сеанс и поставить чек, если в сеансе он уже не перезаписывается.

И когда вы хотите перезаписать, вы можете сделать это, передав другой флаг скрипту в свой пост-запрос.

Ещё вопросы

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