按钮单击时启动PHP会话

时间:2014-02-04 15:10:12

标签: php session

我目前遇到的问题是我用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并且可以改进,请告诉我!

所以基本上我的问题是我需要使用按钮开始和结束会话。

我希望我能尽可能好地解释我的挣扎,希望你们中的一个人能找到我想要的答案!

提前致谢!

3 个答案:

答案 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搜索。