PHP:如何创建一个正在进行的故事;案例?调试

PHP:如何创建一个正在进行的故事;案例?调试,php,Php,这很简单:我仍然有一些问题需要提出好的结论性问题,但我尽了最大努力 我想创建一个php代码,当用户使用一些单选按钮提交信息时,该代码将继续进行。到目前为止,我写了一个脚本示例 每次用户单击一个单选按钮并提交内容时,代码都应该进行,并且$count得到+1。到目前为止,我创建了两个渐进步骤。每次用户选择一个单选按钮并单击submit按钮时,程序都应该回显其他内容,而不是现在所做的是一步回显所选单选按钮的所有内容。(我不想要的) 我不知道为什么会这样。在情况下是否应该中断停止代码并重新启动 我使用了

这很简单:我仍然有一些问题需要提出好的结论性问题,但我尽了最大努力

我想创建一个php代码,当用户使用一些单选按钮提交信息时,该代码将继续进行。到目前为止,我写了一个脚本示例

每次用户单击一个单选按钮并提交内容时,代码都应该进行,并且$count得到+1。到目前为止,我创建了两个渐进步骤。每次用户选择一个单选按钮并单击submit按钮时,程序都应该回显其他内容,而不是现在所做的是一步回显所选单选按钮的所有内容。(我不想要的)

我不知道为什么会这样。在情况下是否应该中断停止代码并重新启动

我使用了CASE,我很确定这不是最好的方法,如果这是一种方法的话,因为它不起作用。我认为,每次用户单击submit按钮时,整个代码都会重置,而不是保存进度

我该怎么办?我必须使用数组来保存单击的信息,还是必须使用循环?我尝试了这两种方法,但仍然没有解决问题的方法

对于我心目中的代码,最简单的解决方案是什么?更进一步,我想用php创建一个简单的文本冒险。我必须学习PHP进行测试,我认为稍微玩弄一下代码将有助于我理解它是如何工作的

这是我写的代码,但我想我必须重新安排它,并使用其他的东西,而不是案例,使其工作

<html>
<head>
  <title>Abfrage</title>
</head>
<body>
 <h4> Typentest</h4>
 <form action="<?php echo $_SERVER['PHP_SELF'] ?>"method="post">
 <p>What would you chose?</p><br />

        <input type="radio" id="a1" name="weapon" value="1" checked> <label for="a1"> Dagger</label><br>
        <input type="radio" id="a2" name="weapon" value="2"> <label for="a2"> Sword</label><br>
        <input type="radio" id="a3" name="weapon" value="3"> <label for="a3"> Saber</label><br>



        <input type="submit" name="gesendet" value="ok"></button> <br />
    </form>


    <?php

        if(isset($_POST['gesendet'])){
        // Variablen deklararien und Werte zuweisen.
            $weapon = $_POST['weapon'];
            $count = 0;


        //First chosing

            if (!empty($weapon) && $count == 0){

                switch($weapon){
                    case "1":
                       echo "You chose a crude dagger ";
                       $count = $count + 1;
                       break;
                    case "2":
                       echo "You chose a crude sword";
                       $count = $count + 1;
                       break;
                    case "3":
                       echo "you chose a crude saber";
                       $count = $count + 1;
                       break;


                }

            }
            //second chosing after second time "submit"
            if (!empty($alter) && $count == 1){

                switch($alter){
                    case "1":
                       echo "you chose a fine dagger";
                       $count = $count + 1;
                       break;
                    case "2":
                       echo "you chose a fine sword";
                       $count = $count + 1;
                       break;
                    case "3":
                       echo "you chose a fine saber";
                       $count = $count + 1;
                       break;


                }

            }


            else {

                echo "Ihre Eingabe ist fehlerhaft ";
            }   
        }


    ?>
</body>

阿布拉奇
类型测试
没有

如果我理解的很好,您希望这样(通过在$\u POST['count']表格中注册步骤):


很长一段时间以来,我们一直在使用php,因此需要检查语法,但逻辑仍然存在。

当$count==0时,将读取两个开关块。这是你想要的吗?首先应该使用第一个开关块,而不是在第二个提交第二个开关块,而不是同时使用两个开关块。如果我写新的开关块,它应该是这样的。休息;将关闭第一个交换机实例;这意味着默认情况下,$count等于1,将执行第二个开关实例。每次提交都会将$count再次设置为0。啊,好的,所以我必须使用循环来获得我想要的。啊,我明白了。我稍后再查。我认为这是正确的方向。我想要的是:如果a$=1回显“this”而不是$a+1,如果a2=echo“that”等等。每次单击“提交”按钮时,计数器应为+1,并且每隔+1会出现另一个文本。我不完全是我想要的:我想要做的是有点不同。此外,我希望的不是发布的信息,而是固有的内容。如果每一步都遵循一个发布操作,您可以在会话或查询中发布或存储当前步骤。你的策略取决于用户是否可以在中间进行故事或者每次都要开始。
$count = 0;
if(isset($_POST['gesendet'])){
    // Variablen deklararien und Werte zuweisen.
    $alter = $_POST['alter'];
    $count = $_POST['count'];

    if (!empty($alter) {
        if($count == 0){

            switch($alter){
                case "1":
                   echo " a";
                   $count = 1;
                   break;
                case "2":
                   echo "b";
                   $count = 1;
                   break;
                case "3":
                   echo "c";
                   $count = 1;
                   break;

                default:
                    echo "whatever!<br>";//is this nescessary?
            }
        }
        else
        {
            if($count == 1){

                 switch($alter){
                     case "1":
                        echo "d";
                        $count = 2;
                        break;
                     case "2":
                        echo "e";
                        $count = 2;
                        break;
                     case "3":
                        echo "f";
                        $count = 2;
                        break;

                     default:
                         echo "whatever<br>"; //is this nescessary?
                 }

             }

        }
    }
$answers = array("a","b","c");
$answer = "WhatEver";
if($alter < 4) $answer = $answers[$alter-1];
$answers = array("1" => "a","2" => "b","3" => "c");
$answer = "WhatEver";
if($answers[$alter]) $answer = $answers[$alter];