2017-02-04 4 views
-1

ログインフォームには小さな問題があります。 私は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 } ?> 
+0

'/ *' <<<は大きな問題です。 –

+0

まず、login.phpのコメントを削除してください。次に、form.phpを開くと、エラーは、$ _SESSION配列にインデックス 'id'が設定されている要素がないことを意味します。 login.phpを使用すると、$ _SESSION ['id']が設定されます。 –

答えて

0

セッションのインデックス 'ID' は存在するかどうかを確認する必要があります。

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

'$ user = $ app-> UserDetails($ _ SESSION ['id']); //ユーザーの詳細を取得する if(isset($ user-> id)){'彼らはすでにそれをしています。 –

+0

私は彼らが$ userの 'id'をチェックしていると思います。しかし、彼らは$ _SESSIONの 'id'が存在するかどうかをチェックしていません。それは問題じゃない? –

関連する問題