reparieren kann Ich habe kleines Problem mit Login-Formular. Wenn ich es Display öffnen form.php diesen Fehler:Warum diesen Fehler anzeigen und wie ich
Notice: Undefined index: id in C: \ xampp \ htdocs \ form.php auf Linie 3
Aber wenn ich in form.php angemeldet ist alles in Ordnung. Meine Frage ist, wie ich diesen Fehler beheben kann und gibt es eine Sicherheitslücke in meinem Code?
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>';
}
}
}
?>
und meine 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 } ?>
'/ *' <<< ist ein großes Problem hier. –
Zuerst entfernen Sie den Kommentar/* in login.php. Dann, wenn Sie die form.php öffnen, bedeutet der Fehler, dass das Array $ _SESSION kein Element mit dem Index 'id' hat. Wenn Sie login.php verwenden, wird $ _SESSION ['id'] gesetzt. –