未定义索引';用户名';在第2行的/var/www/html/test/foo.php中

未定义索引';用户名';在第2行的/var/www/html/test/foo.php中,php,html,Php,Html,最近开始学习php,我正在尝试让get方法发挥作用 这是我正在测试的html表单: <!DOCTYPE html> <html> <body> <form action="foo.php" method="get"> Name: <input type="text" name="username" /><br /> Email: <input type="text" name="email" /><

最近开始学习php,我正在尝试让get方法发挥作用

这是我正在测试的html表单:

<!DOCTYPE html>
<html>

<body>
<form action="foo.php" method="get">
  Name: <input type="text" name="username" /><br />
  Email: <input type="text" name="email" /><br />
  <input type="submit" name="submit" value="Submit me!" />
</form>
</body>

</html>

名称:
电子邮件:
我研究发现,应该使用isset()检查$\u GET数组是否包含该值。所以我尝试了(这是foo.php):


试图通过get方法传递值似乎有问题,我尝试了与post完全相同的方法,替换method=“get”to method=“post”,并将php文件中的$\u get改为$\u post。这与post方法完美配合。我知道你不应该通过get方法传递敏感信息,如电子邮件等,但我只是想测试一下

这是我提交表单后得到的输出: 用户名未通过
电子邮件未通过

尝试此方法时会发生什么

if(array_key_exists('username', $_GET))
    echo $_GET['username'];

学习PHP的基础知识@帕尼克“基础”?他们不是说
isset()
可以用来检查数组中是否设置了索引吗?也许你可以回答这个问题,并教我们这些以这种方式使用它的人正确的方法,而不是添加尖刻和无用的评论?从表面上看,你的代码没有什么问题。您是否确定您的两段代码的当前版本已对齐(方法是get并使用$\u get或w/same with post;low not method get但使用$\u post或visa反之亦然)?这两段代码是否都在同一个文件foo.php中,而您只是在初始加载时看到了msg?@newfurniturey是的,手册会这样做,并且此代码不会生成未定义的索引。OP没有像上面的例子那样运行它,因为这样他就不会有错误。所以我同意学习基础知识,只要试着复制粘贴代码,然后自己尝试。无论其发布或获取的html和php是否位于不同的文件中,html_form.html中的html和foo.php中的php都不重要。我加载html文件,输入名称和电子邮件地址,然后单击提交。然后我得到用户名未通过,电子邮件未通过。
if(array_key_exists('username', $_GET))
    echo $_GET['username'];