ログインフォームには小さな問題があります。 私はform.php開くと、それは、このエラーが表示されます:このエラーを表示する理由と修理方法
お知らせ:未定義のインデックス:Cのid:\ 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']が設定されます。 –