2016-07-20 658 views
-1

Ich gebe das richtige Passwort und Benutzernamen genau so ein, wie es in meiner Datenbank ist, aber es sagt, dass es ungültig ist. Ich habe dann versucht, den Benutzernamen und das Passwort falsch einzugeben und sollte den gleichen Fehler widerspiegeln wie er es tat.Login-System funktioniert nicht richtig

unten ist mein Code:

<?php 
$servername = "localhost"; 
$dbname = "dbtechnerdzzz"; 
$user = "root"; 
$password = "root"; 
session_start(); // Starting Session 
$error=''; // Variable To Store Error Message 
if (isset($_POST['submit'])) { 
    if (empty($_POST['form-username']) || empty($_POST['form-password'])) { 
    $error = "Username or Password is invalid"; 
    } 
    else 
    { 
    $connection=mysqli_connect($servername, $user, $password, $dbname); 
    // Check connection 
    if (mysqli_connect_errno()){ 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    // To protect MySQL injection for Security purpose 
    $username = mysqli_real_escape_string($connection,$_POST['form-username']); 
    $password = mysqli_real_escape_string($connection,$_POST['form-password']); 

    // SQL query to fetch information of registerd users and finds user match. 
    $query = mysqli_query($connection,"select * from accounts where Password='$password' AND Username='$username'"); 
    if(!$query) die(mysqli_error($connection)); 
    $rows = mysqli_num_rows($query); 
    echo mysqli_error ($connection); 
if ($rows == 0) { 
    // zero row found 

    $error = "Username or Password is invalid"; 
    //header("location: signin.php"); // Redirecting To login Page 
    echo "Username or Password is invalid"; 

} else { 
    // at least one row has been found 

    $_SESSION['login_user'] = $username; // Initializing Session 
    header("location: profile.php"); // Redirecting To profile Page 
    echo "login successful"; // this line will never be executed because user is redirected with header (line above) 

} 

mysqli_close($connection); // Closing Connection 
?> 

Update 1 (21. Juli 2016 00.27 BST):

ich diesen Fehler im Browser bekam:

I dann schaute in meine Protokolle und es hieß:

PHP Parse error: syntax error, unexpected end of file on line 44

Linie ist:

?> 

so ist es das Ende der Datei.

+0

Sie nehmen an, dass Ihre Abfrage erfolgreich ausgeführt wurde, aber es könnte helfen, nach Fehlernachrichten wie echo mysqli_error ($ connection) zu suchen; ' –

+0

Bitte fügen Sie keinen Code aus Lösungen in Ihre Fragen ein. Ändern Sie Ihre Frage auf diese Weise macht die Antworten ungültig und macht es unmöglich für die Leute kommen später aus Ihren Fehlern zu lernen oder gute Antworten zu geben – BeetleJuice

Antwort

0

Wenn ich Sie wäre, würde ich die if-Anweisung tun auf diese Weise:

if ($rows == 0) { 
    // zero row found 

    $error = "Username or Password is invalid"; 
    //header("location: signin.php"); // Redirecting To login Page 
    echo "Username or Password is invalid"; 

} else { 
    // at least one row has been found 

    $_SESSION['login_user'] = $username; // Initializing Session 
    header("location: profile.php"); // Redirecting To profile Page 
    echo "login successful"; // this line will never be executed because user is redirected with header (line above) 

} 

mysqli_close($connection); // Closing Connection 

Wenn Sie mit dem gleichen Benutzer haben zwei Reihen passieren, die if-Anweisung wird immer noch funktionieren und echo „Anmeldung erfolgreich“

+0

Ich habe diesen Fehler im Browser: Die Seite localhost funktioniert nicht localhost ist derzeit nicht in der Lage um diese Anfrage zu bearbeiten. HTTP-FEHLER 500 Ich sah dann in meinen Protokollen und es war: PHP-Parse-Fehler: Syntaxfehler, unerwartetes Ende der Datei in Zeile 44 – ProgrammingHelp1

+0

Es entspricht welcher Zeile? – Ivan

+0

Zeile 44 ist:?> So Ende der Datei. – ProgrammingHelp1

0

Möglicherweise liegt ein Problem mit Ihrer Anfrage vor. Fügen Sie ein Häkchen zwischen Ihrer Abfrageausführung und Ihrer Zeilenanzahl ein

$query = mysqli_query(...); 
if(!$query) die(mysqli_error($connection)); 
$rows = mysqli_num_rows($query); 

Dies zeigt alle Fehler auf dem Bildschirm an. Es ist nur zum Testen; Endbenutzer sollten keine Details zu Ihren Serverfehlern sehen.

+0

Ich habe diesen Fehler im Browser: Die Seite localhost funktioniert nicht localhost kann diese Anfrage derzeit nicht verarbeiten. HTTP-FEHLER 500 Ich schaute dann in meinen Protokollen und es war: PHP-Parse-Fehler: Syntaxfehler, unerwartetes Ende der Datei in Zeile 44 – ProgrammingHelp1

+0

Dies ist ein anderes Problem. Die Zeile, die ich eingegeben habe, konnte diesen Fehler nicht verursachen. – BeetleJuice

+0

@ ProgrammingHelp1 Wenn Ihre Datei genau so ist, wie sie gerade im OP ist, fehlt am Ende ein '}', um den 'if (isset ($ _ POST ['submit']))' Block zu schließen. Sie sollten auch das 'echo mysqli_error ($ connection)' entfernen, da es niemals etwas zurückgibt. Du stirbst bereits zwei Zeilen früher bei Fehler, so dass das Skript nur so weit kommt, wenn es keinen Fehler gibt. – BeetleJuice