我正在创建一个简单的hangman应用程序,我有我的php文件和一个单独的.txt文件,其中包含单词,每行一个。
我想要的是$ word变量在页面刷新后保持不变,因为我打算使用GET或POST来获取用户的输入。
在下面的示例代码中,我希望$ word在提交表单后保持不变。 我相信将代码转移到另一个地方是一件简单的事情,但我无法弄清楚这个PHP菜鸟的任何帮助会受到赞赏!
wordsEn1.txt:
cat
dog
的functions.php:
<?php
function choose_word($words) {
return trim($words[array_rand($words)]);
}
?>
hangman.php:
<?php
include('functions.php');
$handle = fopen('wordsEn1.txt', 'r');
$words = array();
while(!feof($handle)) {
$words[] = trim(fgets($handle));
}
$word = choose_word($words);
echo($word);
echo('<form><input type="text" name="guess"></form>');
?>
答案 0 :(得分:7)
使用会话:
session_start(); // in top of PHP file
...
$_SESSION["word"] = choose_word($words);
$_SESSION["word"]
将在刷新
如果你关心“生命周期”,也请遵循这一点(把它放在session_start
之前)
session_set_cookie_params(3600,"/");
整个域(“/”)
小时答案 1 :(得分:0)
您可以使用隐藏的输入:
<form method="POST">
<input type="text" />
<input type="hidden" name="word" value="<?php echo $word; ?>" />
</form>
......并在下一页:
if(isset($_POST['word'])) {
echo $_POST['word'];
}
或者您可以使用PHP $_COOKIE,可以永久调用(但如果您只是想在下一页上使用它,那就太浪费了):
setcookie('word', $word, time()+3600, '/');
......并在下一页:
echo $_COOKIE['word'];
答案 2 :(得分:0)
只需使用隐藏类型的表格即可解决该问题。如果我们将其放入会话中,同时页面也会刷新其隐藏内容。如果您可以将该值存储在隐藏的表单字段中,则可以随时对其进行存储和检索。