2017-02-04 2 views
-1

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 } ?> 
+0

'/ *' <<< ist ein großes Problem hier. –

+0

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. –

Antwort

0

Sie überprüfen sollten, wenn der Index 'id' der Session existiert.

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

'$ user = $ app-> UserDetails ($ _ SESSION ['id']); // Nutze Benutzerdetails if (isset ($ user-> id)) {'das machen sie schon. –

+0

Ich denke, sie überprüfen "ID" von $ Benutzer ist es in Ordnung. Aber sie prüfen nicht, ob 'ID' von $ _SESSION existiert. Ist das nicht Problem? –

Verwandte Themen