未定义的索引:GET请求[重复]

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

在我的网站文件中,我有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**,这怎么能解决?

提前致谢。

php get
1个回答
1
投票

您必须首次加载页面并且尚未设置$_GET$_POST值,因为表单尚未提交或页面已运行而没有所需的查询字符串。

因此,在使用它们之前,请务必检查参数是否存在

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

这将确保你不会尝试使用$_GET['status']无用它实际存在并且你的2个变量a)存在和b)有一些值,即使它是像这样的''的默认值

© www.soinside.com 2019 - 2024. All rights reserved.