Я очень плохо знаком с PHP, поэтому, пожалуйста, извините, если это глупый вопрос.
Итак, вот сценарий.
Я пишу PHP все на одной странице, которая получает случайное слово из массива, шифрует слово, а затем позволяет пользователю угадать слово.
Теперь я использую isset (), поэтому он объявляет переменную, а затем, когда нажимают на submit, он получает входные данные пользователя через _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 без ее повторной генерации.
Вы можете просто включить значение в качестве скрытого поля ввода в вашей форме.
<input type="hidden" name="myCalculatedValue" value="<?= $tempWord ?>" />
Затем, когда форма отправлена, вы можете просто получить ее через $_POST['myCalculatedValue']
Вы можете использовать сеанс и поставить галочку, что если у сеанса он уже не перезаписан.
И когда вы хотите перезаписать, вы можете сделать это, передав еще один флаг скрипту в вашем пост-запросе.