首页 > 解决方案 > 未定义索引:GET 请求

问题描述

在我的网站文件中,我有 3 个文件,一个文件包含一些基本的PHP代码,例如收集用户数据,为了使代码有条理,我包含了模板表单文件,而不是在同一页面中编写它们的代码。

所以,我在模板文件之后包含了表单。现在,提交表单后,我想显示错误代码(如果存在),但我无法将其发送到第一页(包含在它之前),因为它会说Undefined variable. 我尝试使用发送变量,$_SESSION但这不是一个好主意,因为即使刷新页面后,错误也会保留。

所以,我决定通过GET请求来实现。(例如:http ://website.com/form?status=failed&error=gender )。

获取GET值的代码是:

$status = $_GET['status'];
$error = $_GET['error'];

$error1 = "You have to choose the gender.";

if ($status == "failed"){
    if ($error == "gender"){
        $message = $error1;
        echo '<div class="message">'.$message.'</div>';
    }
} else {
    echo '<h4 class="tab-info">Complete these steps in order to get posts related to your interests.</h4>';
}

如果尚未提交$status$error为空(http://website.com/form),则会出现以下错误:,如何解决?Undefined index: status in **path**

提前致谢。

标签: phpget

解决方案


您总是必须在第一次加载页面时编写代码,并且由于尚未提交表单或在没有所需查询字符串的情况下运行页面而未设置$_GETor值。$_POST

所以在使用它们之前总是检查参数是否存在

$status = isset($_GET['status']) ? $_GET['status'] : '';
$error = isset($_GET['error'] ? $_GET['error'] : '';

这将确保您不会尝试使用$_GET['status']它实际上存在的无用,并且您的 2 个变量 a) 存在并且 b) 具有某些值,即使''在这种情况下它是默认值


推荐阅读