Проблема, с которой я в настоящее время сталкиваюсь, заключается в том, что я открываю скрипт с session_start()
, и, как мы все знаем, сессия останется до тех пор, пока вы полностью не закроете свой браузер или в течение определенного времени. Это точно моя проблема.Начало сеанса PHP на кнопке
Мне нужно сделать так, чтобы при нажатии Start Button
оно будет session_start()
, но когда вы нажмете Reset Button
, сеанс должен «перезагрузить».
Я читал бесчисленные страницы о сеансах, и я читал тысячи вопросов уже о stackoverflow. Но я действительно не могу найти решение для своей проблемы.
Я слышал, как кто-то сказал, что они связали его, если нажата кнопка, session_start = true. Но я не мог найти объяснений.
Что я пытаюсь сделать, это небольшая игра. Игра BlackJack. А так как мне нужно использовать столько PHP, насколько это возможно я сейчас использую это:
<form method="post">
<input type="hidden" name="form" value="draw"/>
<input type="submit" value="Hit"/>
</form>
Тогда им с помощью этого PHP с ним:
<?php
session_start();
include_once 'cards_array.php';
// cards in hand
if(!isset($_SESSION["hand"])) $_SESSION["hand"] = array();
// draw a card from the pile into the hand
function draw_card() {
if(count($_SESSION["pile"]) > 0){
$card = array_rand($_SESSION["pile"]);
$_SESSION["hand"][$card] = $_SESSION["pile"][$card];
unset($_SESSION["pile"][$card]);
}else{
unset($_SESSION["pile"]);
unset($_SESSION["hand"]);
session_destroy();
}
}
function list_hand() {
foreach($_SESSION["hand"] as $card=>$points) {
echo $card;
echo ', ';
}
}
// detect which form was triggered
function FORM($value) {
return isset($_POST["form"]) && $_POST["form"]==$value;
}
// handle the draw form
if(FORM("draw")){
draw_card();
list_hand();
}
include_once 'cards_cases.php';
?>
С cards_array существа:
<?php
// cards on pile
if(!isset($_SESSION["pile"])) $_SESSION["pile"] = array(
2 => 2,
3 => 3,
4 => 4,
5 => 5,
6 => 6,
7 => 7,
8 => 8,
9 => 9,
10 => 10,
'Jack' => 10,
'Queen' => 10,
'King' => 10,
'Ace' => 11);
?>
Извините за сброс этой кодовой бомбы на вас, ребята, но так как я действительно не знаю, что важно или что можно оставить без внимания, и вы рискуете спросить, где x и где y, я бы предпочел разместить большую часть этого в надежде это ясно для вас, t im пытается достичь.
Поскольку я никогда не работал с сеансами до этого, я действительно в недоумении, как то, что могу сделать для своей проблемы. Я не знаю, подходит ли мой код таким образом. Но пока это PHP и может быть улучшен, пожалуйста, дайте мне знать!
Так что в основном моя проблема в том, что мне нужно начинать и заканчивать сеанс с помощью кнопок.
Надеюсь, я объяснил как можно лучше, с чем я борюсь, и я надеюсь, что у одного из вас есть ответ, который я ищу!
Заранее благодарен!
Большое спасибо! это исправляет кнопку сброса точно так, как я хочу! Если я использую его таким образом, не лучше ли мне настроить главную страницу как logout.php, таким образом, если они закроют браузер и снова войдут в logout.php, он снова будет сброшен? –
Вы можете играть с переменными $ _GET и создавать условия для уничтожения сеансов. – cardeol
На самом деле это не вопрос, но если вы можете ответить на него, это спасет меня много времени и других народов. Возможно ли запустить функцию php при нажатии кнопки. Без использования JavaScript? Насколько я знаю, вы не можете использовать onclicks с помощью PHP, но, возможно, есть обходной путь? Еще раз спасибо! –