期望 POST 重定向到 GET - 找到 POST

问题描述 投票:0回答:1

无法修复此错误:“期望 POST 重定向到 GET - 找到 POST”。 我使用 ngrok 和 XAMPP 运行此代码。

这是以下作业的一部分:https://www.wa4e.com/assn/rps/

实际上一切正常,授权效果很好,但在作业的自动评分器中存在以下错误: “检查 POST 是否重定向到 GET。期望 POST 重定向到 GET - 已找到 POST”

HTML部分

<form method="POST">
   <label for="nam">User Name</label>
   <input type="text" name="who" id="nam"><br/>
   <label for="id_1723">Password</label>
   <input type="text" name="pass" id="id_1723"><br/>
   <input type="submit" value="Log In">
   <input type="submit" name="cancel" value="Cancel">
</form>

PHP部分:

// 检查我们是否有一些 POST 数据,如果我们处理它

if ( isset($_POST['who']) && isset($_POST['pass']) ) {
    if ( strlen($_POST['who']) < 1 || strlen($_POST['pass']) < 1 ) {
        $failure = "User name and password are required";
    } else {
        $check = hash('md5', $salt.$_POST['pass']);
        if ( $check == $stored_hash ) {

            // Redirect the browser to game.php
header("Location: https://c561-212-58-119-178.ngrok-free.app/rps/game.php?name=".urlencode($_POST['who']), true, 303);
            return;
        } else {
            $failure = "Incorrect password";
        }
    }
}

我预计 header() 的附加参数“...true, 303...”会对我有所帮助,但没有任何改变:(

php post get
1个回答
0
投票

看起来您需要使用

eixt()
而不是
return
来终止代码执行,这样可以确保不再执行代码

if ( isset($_POST['who']) && isset($_POST['pass']) ) {
        if ( strlen($_POST['who']) < 1 || strlen($_POST['pass']) < 1 ) {
            $failure = "User name and password are required";
        } else {
            $check = hash('md5', $salt.$_POST['pass']);
            if ( $check == $stored_hash ) {
    
                // Redirect the browser to game.php
    header("Location: https://c561-212-58-119-178.ngrok-free.app/rps/game.php?name=".urlencode($_POST['who']), true, 303);
                return;
            } else {
                $failure = "Incorrect password";
            }
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.