2017-02-04 11 views
-1

У меня небольшая проблема с формой входа. Когда я открываю 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 } ?> 
+0

'/ *' <<< - большая проблема. –

+0

Во-первых, удалите комментарий/* в login.php. Затем, когда вы открываете form.php, ошибка означает, что в массиве $ _SESSION нет элемента с индексом 'id'. Когда вы используете login.php, устанавливается $ _SESSION ['id']. –

ответ

0

Вы должны проверить, существует ли индекс 'идентификатор' в сессии.

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

'$ user = $ app-> UserDetails ($ _ SESSION ['id']); // получить данные пользователя if (isset ($ user-> id)) {'они делают это уже. –

+0

Я думаю, что они проверяют 'id' пользователя $, все в порядке. Но они не проверяют, существует ли идентификатор $ _SESSION. Разве это не проблема? –

 Смежные вопросы

  • Нет связанных вопросов^_^