dsrw29618 2015-09-25 03:53
浏览 27
已采纳

PHP会话不适用于游戏

I am trying to imitate a game called SKUNK (you play it with dice) for an assignment.

I can't get the sessions to work. This is my first time using PHP. Also I was told it can be done without sessions.

Here is my code:

<form method="get" action= "skunk.php">
    <h1>PLAY SKUNK</h1>

    ROLL AGAIN? <br> 
    yes<input type="radio" name="role2" value="yes"/>
    no<input type="radio" name="role2" value="no"/>
    <br>
    <input type="submit"/>

    </form>

<?php 

session_start();
    $_SESSION["s"] = array(0);
    $_SESSION["k1"] =array(0);
    $_SESSION["u"] = array(0);
    $_SESSION["n"] = array(0);
    $_SESSION["k2"] = array(0);
    $rand = 0;
    $rand2 = 0;
    $_SESSION["round"] = 1;
    if($_REQUEST["role2"] == "yes"){
        $rand = rand (1, 6);
        $rand2 = rand(1, 6);
         if($rand == 1 and $rand ==1){
            switch ($_SESSION["round"]) {
                case 1:
                    $_SESSION["s"] = array(0);
                    break;
                case 2:
                    $_SESSION["s"] = array(0);
                    $_SESSION["k1"] =array(0);
                    break;
                case 3:
                    $_SESSION["s"] = array(0);
                    $_SESSION["k1"] =array(0);
                    $_SESSION["u"] = array(0);
                    break;
                case 4:
                    $_SESSION["s"] = array(0);
                    $_SESSION["k1"] =array(0);
                    $_SESSION["u"] = array(0);
                    $_SESSION["n"] = array(0);
                    break;
                case 5:
                    $_SESSION["s"] = array(0);
                    $_SESSION["k1"] =array(0);
                    $_SESSION["u"] = array(0);
                    $_SESSION["n"] = array(0);
                    $_SESSION["k2"] = array(0); 
                    break;
            }
         }
         if($rand > 1 and $rand2 > 1) {
            switch ($_SESSION["round"]) {
                case 1:
                    array_push($_SESSION["s"], $rand, $rand2);
                    break;
                case 2:
                    array_push($_SESSION["k1"], $rand, $rand2);
                    break;
                case 3:
                    array_push($_SESSION["u"], $rand, $rand2);
                    break;
                case 4:
                    array_push($_SESSION["n"], $rand, $rand2);
                    break;
                case 5:
                    array_push($_SESSION["k2"], $rand, $rand2);
                    break;
            }
            $_SESSION["round"]++;
        }

        if($_SESSION["round"] > 5){
            session_destroy();
        }
        echo "you rolled: " . $rand . "
";
        echo "you rolled: " . $rand2;

    }

?>
    <table style="width:100%" border="1" >
          <tr>
            <td>S</td>
            <td>K</td> 
            <td>U</td>
            <td>N</td>
            <td>K</td>
          </tr>
    </table>
    <table style="width:100%" border="1" >
          <tr>
            <td><?php echo array_sum($_SESSION["s"]); ?></td>
            <td><?php echo array_sum($_SESSION["k1"]); ?></td> 
            <td><?php echo array_sum($_SESSION["u"]); ?></td>
            <td><?php echo array_sum($_SESSION["n"]); ?></td>
            <td><?php echo array_sum($_SESSION["k2"]); ?></td>
          </tr>
    </table>
  • 写回答

1条回答 默认 最新

  • dras2334 2015-09-25 05:02
    关注

    if you use session at any point session_start() should be the first line of just before any printing functions.

    start session at the starting of the page then try to print echo " $_SESSION["s"]";

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 在不同的执行界面调用同一个页面
  • ¥20 基于51单片机的数字频率计
  • ¥50 M3T长焦相机如何标定以及正射影像拼接问题
  • ¥15 keepalived的虚拟VIP地址 ping -s 发包测试,只能通过1472字节以下的数据包(相关搜索:静态路由)
  • ¥20 关于#stm32#的问题:STM32串口发送问题,偶校验(even),发送5A 41 FB 20.烧录程序后发现串口助手读到的是5A 41 7B A0
  • ¥15 C++map释放不掉
  • ¥15 Mabatis查询数据
  • ¥15 想知道lingo目标函数中求和公式上标是变量情况如何求解
  • ¥15 关于E22-400T22S的LORA模块的通信问题
  • ¥15 求用二阶有源低通滤波将3khz方波转为正弦波的电路