我正在创建一个使用MYSQL保存到数据库的简单登录表单。我使用了一个教程,最后当我测试它时,我得到一个错误说
'Notice: Undefined index: login in C:\wamp\www\database_test\login.php on line 7'
不知道这意味着什么,在搜索互联网后仍然无法弄明白。这是我的代码。请帮忙。谢谢!
<?php
session_name('MyLogin');
session_start();
session_destroy();
if ($_GET['login'] == "failed") { //<------This is line 7//
print $_GET['cause'];
}
?>
<html>
<body>
<form name='login_form' method='post' action='log.php?action=login'>
Login: <input type='text' name='user'><br />
Password: <input type='password' name='pwd'><br />
<input type='submit'>
</form>
</body>
</html>
我基本上是从
的教程中复制过来的http://www.howtodothings.com/computers-internet/how-to-make-a-login-system-for-your-website
答案 0 :(得分:2)
当您尝试访问数组中不存在的元素时,会发生此通知。要检查是否 - 请使用isset()
if (isset($_GET['login']) && $_GET['login'] == "failed") {
答案 1 :(得分:2)
这是在$_GET['login']
的第7行(如错误状态)引发的。抛出此错误是因为login
不是$_GET
数组中的密钥。因此,PHP引发了通知。您可以添加isset()
或!empty()
检查以避免错误,例如:
if (!empty($_GET['login']) && $_GET['login'] == "failed" )
答案 2 :(得分:0)
如果你给浏览器这样的地址。不会发生错误。因为您已将$ _GET ['login']分配给“失败”值。
但如果你没有在地址
中提供“login = failed”$ _ GET ['login']未设置,并且php无法在$ _GET数组中找到'login'索引,它会抛出错误:)
解决方案是检查$ _GET ['login']是否设置,然后再检查其值。
if ( !empty($_GET['login']) && $_GET['login'] == "failed" )
如果未设置empty($_GET['login'])
,则 $_GET['login']
会返回true