2016-05-14 10 views
0

Ich bin sehr neu in der Webentwicklung und arbeite gerade an einem Schulprojekt. Ich habe ein Problem mit meinem Login-Code, aber ich kann nicht herausfinden, was es ist. Wenn ich das Formular absende, scheint die Seite einfach neu zu laden und es wird keine Sitzung eingestellt.Was ist los mit dieser PHP-Login-Seite?

Meine verkürzte Login-Seite:

<?php include "connect.php"; 

if (isset($POST['login'])) { 
    $user_email_username = mysqli_real_escape_string($link, $_POST['email_username']); 
    $user_password = mysqli_real_escape_string($link, $_POST['password']); 

    $email_username_query = mysqli_query($link, "SELECT * FROM User WHERE email='$user_email_username' OR username='$user_email_username'"); 

    if (mysqli_num_rows($email_username_query) == 0) { 
     $not_registered_error = "It looks like you still don't have an account. <a href=\"signup.php\">Sign up</a>."; 
    } else { 
     $row = mysqli_fetch_array($email_username_query); 
     if (sha1($user_password) != $row['password']) { 
      $wrong_password_error = "The password you submitted is wrong."; 
     } else { 
      $_SESSION['user_id'] = $row['idUser']; 
      $_SESSION['user_name'] = $row['name']; 
      $_SESSION['user_username'] = $row['username']; 
      header("Location: index.php"); 
     } 
    } 
} 
?> 
<!--metadata--> 
<div class="container"> 
    <div class="row"> 
     <div class="col-md-6 col-md-offset-3"> 
      <div id="login" class="login-panel panel panel-default"> 
       <div class="panel-body"> 
        <form role="form" method="post" action="login.php"> 
         <fieldset> 
          <!--login form--> 
         </fieldset> 
         <?php if (isset($not_registered_error)) { 
          echo "<div class=\"alert alert-danger\" role=\"alert\">" . $not_registered_error . "</div>"; 
         } 
         if (isset($wrong_password_error)) { 
          echo "<div class=\"alert alert-danger\" role=\"alert\">" . $wrong_password_error . "</div>"; 
         } ?> 
         <p>Haven't joined yet? <a href="signup.php">Sign up</a>.</p> 
        </form> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 
//... 

Anders als die meisten Beispiele, die ich im Internet gefunden, was ich versuche, hier zu tun ist, das Programm zu haben, um herauszufinden, ob der Benutzername (oder E-Mail) nicht existiert oder das Passwort für diesen Benutzernamen ist falsch. Das Anmeldeprogramm, das ich geschrieben habe, funktioniert einfach großartig. Die Frage selbst ist schon lang genug, also habe ich keine signup.php hinzugefügt. Lass es mich wissen, wenn es hilfreich sein kann. Verwenden von MySQL für eine lokale Datenbank und Bootstrap für das Styling.

Ich weiß, dass diese Frage für viele nicht hilfreich sein wird, aber ich wusste nicht, wie ich sie besser formulieren sollte.

Vielen Dank: D

+0

* Anders als die meisten Beispiele, die Sie * gefunden ?! Das scheint die Basis eines Login zu sein ... – jeroen

+0

Ich meinte, die meisten Beispiele verwenden eine solche Abfrage: "SELECT * FROM User WHERE email = '$ user_email_username' UND password = '$ password'"; Auf diese Weise können Sie nicht sagen, ob das Problem in der E-Mail gesendet oder im Passwort ist ... –

+0

Ryan Vincent, danke :) –

Antwort

7
if (isset($POST['login'])) { 

Muss sein:

if (isset($_POST['login'])) { 
+0

immer noch lernen, Stapelüberlauf: P – iGNEOS

+0

Es war so ein Versehen ... Entschuldigung dafür –