【问题标题】:Beginner php "Warning: Undefined array key" [duplicate]初学者php“警告:未定义的数组键” [重复]
【发布时间】:2021-01-06 21:33:22
【问题描述】:

所以,我正在学习 PHP,并且在 $GET_["fname"] 和 $GET_["age"] 中不断收到“警告:未定义的数组键”:

<main>

    <form action="inputs.php" method="get">
        Name: 
        <br/>
        <input type="text" name="fname">
        <br/>
        Age:
        <br/>
        <input type="number" name="age">
        <br/>
        <input type="submit" name="submit">

    </form>
        <br/>
        Your name is <?php echo $_GET["fname"]; ?>
        <br/>
        Your age is <?php echo $_GET["age"]; ?>

</main>

【问题讨论】:

  • 一个页面的“第一次调用”参数未设置,这就是错误出现的原因。首先检查它们是否使用isset 设置,然后输出它们。 (如果您提交的页面与您的表单所在的页面相同,则可以删除action参数)
  • 感谢操作提示。 :))

标签: php html forms


【解决方案1】:

我假设您想知道如何摆脱此错误消息。

第一次加载此页面时,您会显示一个表单并且 $_GET 是空的(这就是它触发警告的原因)。然后你提交表单,fname 和 age 参数将被添加到 url 中(因为你表单的方法是 'get')。

要解决您的问题,您可以将这两行包含在一些 if 语句中,例如:

<?php if(isset($_GET['fname']) && isset($_GET['age'])): ?>
        <br/>
        Your name is <?php echo $_GET["fname"]; ?>
        <br/>
        Your age is <?php echo $_GET["age"]; ?>
<?php endif; ?>

【讨论】:

  • 我正在学习2018年录制的youtube课程,可能是因为它是旧版本的php?在视频中,老师没有显示任何“isset”,他的代码仍然有效,但我的没有。
  • 我怀疑教程代码在没有警告/错误的情况下工作。关闭错误报告/显示并且不显示错误(不好的做法),但如果未提交表单,您的 $_GET 参数仍将设置
  • 知道了。非常感谢您的帮助@brombeer
  • 是的,自从 php 8.0(最新版本)以来,这种类型的错误被显示为警告,在此之前它们被归类为通知和通知通常被忽略。
  • 谢谢@JoshuaAngnoe。
猜你喜欢
  • 2021-07-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-13
  • 1970-01-01
  • 2019-10-21
  • 1970-01-01
  • 2022-11-20
  • 2022-12-04
相关资源
最近更新 更多