2016-12-17 3 views
0

Ich habe ein paar Probleme damit, dass meine eingeloggte Sitzung auf "true" gesetzt wird, wenn die Anzahl der in meiner SQL-Abfrage ausgewählten Zeilen> 0 ist und ansonsten auf "false" gesetzt ist. Immer wenn ich eine gültige Anmeldung einchege, wird nichts gedruckt (ich drucke es, um zu prüfen, ob es funktioniert) und wenn ich eine ungültige Anmeldung einstelle, druckt es die Sitzung, aber die Anmeldung hat keinen Wert. Ich drucke auch den Benutzernamen und das Passwort, um zu überprüfen, ob die Eingabe korrekt ist. Ich bin neu in PHP und Webentwicklung im Allgemeinen und würde jede Hilfe schätzen! Vielen Dank.Sessions für die Anmeldung (PHP)?

Die PHP:

<?php 

SESSION_START(); 

$servername = "localhost"; 
$username = "MY USERNAME"; 
$password = "MY PASSWORD"; 
$dbname = "MY USERNAME"; 

$conn = new mysqli($servername, $username, $password, $dbname); 

if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$username = $_POST['usernameinput']; 
$password= $_POST['passwordinput']; 
$_SESSION["loggedin"] = false ; 

echo ($username); 
echo ($password); 

$result = mysqli_query($conn,"SELECT `user-id` FROM `users` WHERE `username`  = '" . $username. "' AND `password` = '" . $password. "' "); 

if (!$result) { 
    die(mysqli_error($conn)); 
    } 

if(mysqli_num_rows($result) > 0) { 
    $row = mysqli_fetch_array($result); 
    return $row['ID']; 
    $_SESSION["loggedin"] = true; 
}  

print_r($_SESSION); 

$conn->close(); 
?> 
+0

Können Sie bitte erklären, was $ Zeile ['ID'] zurückgibt; machen? –

+0

Warum auch 'Rückkehr'? –

+0

http://php.net/manual/en/function.return.php * "Wenn sie von einer Funktion aufgerufen wird, beendet die Return-Anweisung sofort ** die Ausführung ** der aktuellen Funktion ..." * –

Antwort

0

Versuchen

if(mysqli_num_rows($result) > 0) { 
     $row = mysqli_fetch_array($result); 
     $_SESSION["loggedin"] = $row['user-id']; 
     print_r($_SESSION); 
} 
else { 
     session_destroy(); 
     print 'Username or password is wrong.'; 
} 

In Ihrem Fall return $row['ID']; ist nutzlos. Weil Ihr SQL nur user-id ausgewählt hat.