我使用这个简单的登录来保护页面。 当我选择不在数组中的用户名时,我得到消息:第16行的未定义索引。 我怎么能摆脱这个消息?
session_start();
$userinfo = array(
'user1'=>'password1',
'user2'=>'password2'
);
if(isset($_GET['logout'])) {
$_SESSION['username'] = '';
header('Location: ' . $_SERVER['PHP_SELF']);
}
if(isset($_POST['username'])) {
if($userinfo[$_POST['username']] == $_POST['password']) {
$_SESSION['username'] = $_POST['username'];
}else {
echo 'Login failed';
}
}
?>
<?php if($_SESSION['username']): ?>
<p>You are logged in now and this is your secret area</p>
<p><a href="?logout=1">Logout</a></p> <!-- logging out -->
<?php endif; ?>
答案 0 :(得分:2)
检查密钥是否存在。
if( array_key_exists($_POST['username'], $userinfo) ) {
//User found
} else {
//No user found
}
答案 1 :(得分:1)
您只需在条件中添加一个isset检查:
if(isset($userinfo[$_POST['username']]) && $userinfo[$_POST['username']] == $_POST['password']) {