Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当我点击我的重置游戏提交按钮时,前一个猜测仍然是URL的一部分,并作为get请求提交,我如何摆脱它?_Php - Fatal编程技术网

Php 当我点击我的重置游戏提交按钮时,前一个猜测仍然是URL的一部分,并作为get请求提交,我如何摆脱它?

Php 当我点击我的重置游戏提交按钮时,前一个猜测仍然是URL的一部分,并作为get请求提交,我如何摆脱它?,php,Php,我在做一个刽子手游戏。当用户单击一个字母时,它会被附加到url中,如guess=G,但如果我单击了重置按钮(提交按钮),则猜测仍会出现在url中,并启动以下函数 function reset_game() { $_SESSION["word"] = generate_word("dictionary.txt"); $_SESSION["word-progress"] = turn_to_underscores($_SESSION["word"]);

我在做一个刽子手游戏。当用户单击一个字母时,它会被附加到url中,如
guess=G
,但如果我单击了重置按钮(提交按钮),则猜测仍会出现在url中,并启动以下函数

    function reset_game() {
        $_SESSION["word"] = generate_word("dictionary.txt");
        $_SESSION["word-progress"] = turn_to_underscores($_SESSION["word"]);
        $_SESSION["chances-left"] = 9;
        $_SESSION["guesses"] = array();
        $_SESSION["incorrect-guesses"] = array();

        header('Location: index.php');
    }
这很好,只是因为GET请求仍然在URL中,所以它将作为猜测提交,直到我再次单击按钮


这是因为在我的代码中,我进一步检查是否有GET请求,如果有,就执行它。有没有一种方法可以让我在点击重置按钮(sans-JavaScript,对于PHP更是如此)时就清楚地显示GET请求,而不是在检查猜测是否正确时使用if语句?后一种解决方案听起来。。。解决方法。

为每个提交按钮指定不同的
名称
属性值,并在处理过程中键入在
$\u GET
中找到的名称。例如,如果您有名为“guess”和“reset”的提交按钮,则可以测试
isset($\u GET['guess'])
以查看是否单击了“guess”按钮,以及
isset($\u GET['reset'])
以查看是否单击了“reset”按钮

有关此方法的更多信息,请参阅


或者,将两个按钮放在不同的
元素中,这将使它们各自的
元素彼此隔离。

解决了这个问题。确保我提交的表单带有属性
action=“index.php”
,而不是简单的
action=“
,这将GET请求保留在URL中。

对于第一个选项,我正在考虑(如我的问题中所述),但检查是否有重置请求时,我检查猜测似乎不直观。如果这是唯一的选择,我当然同意。对于第二个选项,它们是URL中带有get请求的锚定标记,而不是按钮,但它们是单独的形式。