我目前遇到的问题是我用session_start()
打开脚本,因为我们都知道会话会一直关闭,直到您完全关闭浏览器或在某个时间限制内。这正是我的问题。
我需要这样做,以便如果按下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在哪里,我宁愿把大部分放在希望它清楚地告诉你我想要完成什么。
因为在此之前我从未使用过会议,所以我真的不知道我能为我的问题做些什么。我不知道以这种方式使用我的代码是最好的方法。但只要它是PHP并且可以改进,请告诉我!
所以基本上我的问题是我需要使用按钮开始和结束会话。
我希望我能尽可能好地解释我的挣扎,希望你们中的一个人能找到我想要的答案!
提前致谢!
答案 0 :(得分:2)
像这样创建一个退出页面
logout.php
<?php
session_start(); // start the same session used before
session_destroy(); // destroy all session variables
header("location: /yourpage.php"); // redirect
exit();
?>
你的HTML
...
<a href="logout.php">LOGOUT</a>
答案 1 :(得分:1)
您可以删除会话中的单个变量
unset($_SESSION['session_var']);
或者这将删除会话中的所有变量,但不删除会话本身
session_unset();
这会破坏会话变量
session_destroy();
答案 2 :(得分:0)
加载页面后,不再执行PHP脚本,因此当您按下按钮并启动会话时,需要向服务器发送AJAX请求。
可能你需要阅读关于jQuery和谷歌上的AJAX搜索。