【问题标题】:(PHP) End session button(PHP) 结束会话按钮
【发布时间】:2015-01-06 13:56:28
【问题描述】:

我正在尝试创建一个游戏,当您赢得(或输掉)游戏时,您会进入结束屏幕。

由于游戏以最大尝试次数 (5) 运行,因此当计数器达到 5 时游戏结束。

因此,当您到达赢/输屏幕时,您会看到一个按钮提示,允许用户开始新游戏。 不必要地,按下该按钮时需要终止会话,以便当它返回游戏页面时,游戏会以新的计数器 0 重新启动。

现在我当前的win页面代码如下。

<?php 
session_start();
##error_reporting(0);
##ini_set('display_errors', 0);
?> 

<div align="center">


<h1>Gefeliciteerd!<br /></h1>
<?php echo "Het correcte woord is: ";
echo($_SESSION['testen'])?> 
<br />
<FORM METHOD="LINK" ACTION="lingtesttesttest.php">
<INPUT TYPE="submit" VALUE="Speel nog een keer!">
</FORM>
</div>

从代码中可以看出,当您单击按钮时,您将链接回游戏 PHP... 现在我需要在按下按钮后终止会话的附加功能。 我看过 Stackoverflow 和其他论坛。但是我发现的解决方案通常会转到不同的“killpage”。我不想这样,我想直接回到游戏页面。

【问题讨论】:

  • 为什么不使用 jQuery/Ajax?您不必重新定向或重新刷新页面并销毁它。
  • 您可以将会话变量设置回零...
  • 旁注:METHOD="LINK" 没有方法 LINK。使用 GET 或 POST。这将导致表单回退到默认方法 GET。

标签: php session counter kill


【解决方案1】:

我认为它可以工作:

if(isset($_POST['start_new_game'])){
  session_unset($_SESSION['session_game']);
  // or you can try this also but be sure that there aren't any other $_SESSION variables associated with the user session_destroy();
}
else{
  // do anything you want to do
}

并且您已将表单的方法设置为 LINK METHOD = "LINK"。由于没有“LINK”这样的方法,所以它会导致 php 脚本失败。正如@Fred-ii-提到的那样,您必须使用POSTGET

【讨论】:

  • 这不适用于 OP 的 METHOD="LINK。这将导致表单回退到默认方法 GET。
  • 是的,我现在看到了,还通过我的回答给了他评论。谢谢@Fred-ii-
  • 不客气,Gourab。这只是为了确保 OP 是否计划使用 GET 方法,因为它没有在代码/问题中指定表单是如何用于/作为的。问题中的任何地方都没有 GET/POST 变量。 干杯
【解决方案2】:

我把它弄得太复杂了……

我将此添加到我的赢/输屏幕的底部,它会显示我想要显示的每个统计数据,并在显示所有内容后将其杀死。

<?php 
session_unset();
session_destroy();
?> 

【讨论】:

  • 有趣的是,我之前会提到这一点。另外,您是否阅读了我对您的方法 LINK 的评论?这是无效的。
  • 我把它改成了现在。谢谢。
猜你喜欢
  • 1970-01-01
  • 2017-07-18
  • 2013-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-13
  • 1970-01-01
相关资源
最近更新 更多