php - 未定义索引: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**
提前致谢。
解决方案
您总是必须在第一次加载页面时编写代码,并且由于尚未提交表单或在没有所需查询字符串的情况下运行页面而未设置$_GET
or值。$_POST
所以在使用它们之前总是检查参数是否存在
$status = isset($_GET['status']) ? $_GET['status'] : '';
$error = isset($_GET['error'] ? $_GET['error'] : '';
这将确保您不会尝试使用$_GET['status']
它实际上存在的无用,并且您的 2 个变量 a) 存在并且 b) 具有某些值,即使''
在这种情况下它是默认值
推荐阅读
- flutter - Flutter:应用程序在加密时卡住
- domain-driven-design - 订阅是遵循 ddd 原则的域的一部分吗?
- ros - 离线安装 ROS Melodic
- javascript - 如何创建 javascript 数组并将另一个数组数据保存到 Javascript 中创建的数组
- elasticsearch - 发送脚本调用请求时,将 Data Raw 内容移动到 URL
- cakephp - CakePHP 4 - 自定义请求和响应格式
- hadoop - 辅助名称节点无法启动 ssh:连接到主机 0.0.0.7 端口 22:连接超时
- java - API 30 中的透明状态栏
- .net - 获取 IISAppPool | .NET 中的选择对象状态为空
- date - 具有短时区 ID 的 hive 时区转换