У меня небольшая проблема с формой входа. Когда я открываю form.php это дисплей сообщение об ошибке:Зачем показывать эту ошибку и как я могу восстановить
Примечание: Undefined индекс: идентификатор в C: \ XAMPP \ HTDOCS \ form.php на линии 3
Но когда я вошел в 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 } ?>
'/ *' <<< - большая проблема. –
Во-первых, удалите комментарий/* в login.php. Затем, когда вы открываете form.php, ошибка означает, что в массиве $ _SESSION нет элемента с индексом 'id'. Когда вы используете login.php, устанавливается $ _SESSION ['id']. –