2013-05-03 7 views
4

Я делаю простую приложение палача, и у меня есть файл php и отдельный .txt-файл, содержащий слова, по одному в каждой строке.Как сохранить переменную константу, даже после обновления страницы в PHP

Я хочу, чтобы переменная $ word оставалась постоянной даже после обновления страницы, так как я планировал использовать GET или POST для ввода пользователя.

В приведенном ниже примере кода я хочу, чтобы $ word оставалось неизменным после отправки формы. Я считаю, что это простой вопрос о перемещении кода в другое место, но я не могу понять, какая помощь для этого PHP noob будет оценена!

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>'); 
?> 

ответ

6

использование сессий:

session_start(); // in top of PHP file 
... 
$_SESSION["word"] = choose_word($words); 

$_SESSION["word"] будет там на обновления

, если вы заботитесь о "жизни", следуют также это (поместить его непосредственно перед session_start)

session_set_cookie_params(3600,"/"); 

Он будет содержать час для всего дома n ("/")

+0

Спасибо, что это сработало – JeanBeanie

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']; 
+0

Это не будет работать, если пользователь нажимает F5 для обновления. – 2016-04-22 21:10:59

Смежные вопросы