页面刷新后如何记住输入字段的值?

时间:2019-02-18 17:49:58

标签: php

我正在尝试制作一个简单的文字游戏。 这个想法是用户单击一个按钮,服务器生成一个字母并将其存储在一个数组中,该过程重复十次(我在下面使用的临时解决方法是我一次生成所有11个字母)。 现在,用户从选择的字母中得出他/她可以和的最长单词 然后,用户提交该单词,然后计算机检查该单词是否在词典中,如果存在,则显示“成功”,如果不是,则显示“ xzy单词未出现在我们的词典中”。 我并不是在寻找所有的检查和安全检查,仅此而已 a)当用户单击按钮时,计算机将字母存储在数组中 b)计算机检查用户提供的单词是否在预定义的词典中(在单独的.txt文件中)。

此刻我遇到的问题是,每当我单击按钮时,我所有的数组都会被覆盖 要么带有新字母,要么就是空的。 我怀疑提交的行为正在重置所有内容,但我似乎无法使程序记住 选择了哪些字母,并且不检查字典中是否存在单词。 如何永久存储东西? 代码在下面。

<?php 

//the array to chose letters from (possible letters)
$PosLetters = [
    'a','b','v','g','d',
    'đ','e','ž','z','i',
    'j','k','l','lj','m',
    'n','nj','o','p','r',
    's','t','ć','u','f',
    'h','c','č','dž','š'
];

//generate 11 letters user can chose from
if (isset($_POST['choose'])) {
    for ($i=0; $i < 11; $i++) { 
        $Rndnumber = mt_rand(0,29);
        $Convert = $PosLetters[$Rndnumber];
        $Letters[] = $Convert;
    }

}

//function that does the check wether user submited word is in my  dictionary
function loadFromfile(){


        if (isset($_POST['submitword'])) {

            //load all the words from file 
            $vocab = file('http://localhost/igra_slaganje_reci_php/recnik.txt');

            //check if user submited word is in the dictionary
            if (!empty($_POST['yourword'])) {
                $jki = in_array($_POST['yourword'], $vocab);
                if ($jki == true) {
                    echo 'Success';
                }else{
                    echo $_POST['yourword'] . ' doesn't appear in our dictionary.';
                }
            }
        }
    }


 ?>

 <!DOCTYPE html>
 <html>
 <head>
    <title></title>
    <style type="text/css">
        span {
            min-width: 50px; 
            padding: 15px;
            margin-right: 15px; 
            border: 3px solid red; 
            font-size: 25px;
        }
    </style>
 </head>
     <body>
         <form method="post">
            <input type="submit" name="choose" value="odaberi slovo">
         </form>
         <div class="letters">
            <?php 
                //put chosen letters each into it's own span
                foreach ($Letters as $key => $value) {
                    echo '<span>' . $value . '</span>';
                }
            ?>
         </div>
         <div class="subbmitedword">
            <form method="post">
                <input type="text" name="yourword">
                <input type="submit" name="submitword" value="submit word">
            </form>
            <?php
                loadFromfile();
            ?>
         </div>
     </body>
 </html>

1 个答案:

答案 0 :(得分:1)

您可以将$ PosLetters存储在$ _SESSION中。 然后,每次页面刷新时,您首先要从会话中读取数组,然后再继续。 http://php.net/manual/en/reserved.variables.session.php