为什么要显示此错误以及我如何修复

时间:2017-02-04 18:55:04

标签: php mysql login undefined

我的登录表单有小问题。 当我打开form.php时,它会显示以下错误:

注意:未定义的索引:第3行的C:\ xampp \ htdocs \ form.php中的id

但是当我登录form.php时一切都还好。我的问题是我如何解决这个错误,我的代码中是否存在漏洞?

的login.php

<?php
/*

// Start Session
session_start();

// Database connection
require __DIR__ . '/database.php';
$db = DB();

// Application library ( with DemoLib class )
require __DIR__ . '/lib/library.php';
$app = new DemoLib();
$login_error_message = '';
$register_error_message = '';

// check Login request
if (!empty($_POST['login'])) {

$user = trim($_POST['user']);
$pass = trim($_POST['pass']);

if ($user == "") {
    echo '<pre>';
    echo 'Plese select username';
    echo '</pre>';
} else if ($pass == "") {
            echo '<pre>';
    echo 'Please select pass';
    echo '</pre>';
} else {
    $id = $app->Login($user, $pass); // check user login
    if($id > 0)
    {
        $_SESSION['id'] = $id; // Set Session
        header("Location: form.php"); // Redirect user to the profile.php
    }
    else
    {
                echo '<pre>';
    echo 'Error';
    echo '</pre>';
    }
}
}
?>

和我的form.php

<?php 

$user = $app->UserDetails($_SESSION['id']); // get user details 
if (isset ($user->id)) { ?>
<span>Hello, <b><?php echo $user->user ?><b></span>
<p><a href="#">Add article</a></p>
<p><a href="#">Remove article</a></p>
<p><a href="#">Add news</a></p>
<p><a href="logout.php">Log out</a></p>
<?php } else { ?>
<form action="form.php" method="post">
<p>username:<p>
<input type="text" name="user">
<p>Password:</p>
<input type="password" name="pass">
<input type="submit" name="login" value="Login">
</form>
<br>
<?php } ?>

1 个答案:

答案 0 :(得分:0)

您应该检查Session的索引'id'是否存在。

if ( isset($_SESSION['id']) ) {
    ....
}