2016-06-02 11 views
-1

Ich habe meine Registrierung/Login-Code für meine Website heute arbeiten.Insert und Admin nur Seite in meiner Registrierung/Login-Code

Jetzt möchte ich meinen Login erkennen lassen, wenn sich jemand mit einem Admin-Account anmeldet, damit er auf die Admin-Seite weitergeleitet werden kann. Meine Tabelle wird als „klanten“ en es die Spalten:

fldVoornaam(varchar), fldNaam(varchar), fldPassword, fldEmail(varchar), admin(boolean) 

So manuell ich Admin-Benutzer einen Wert von 1 gesetzt, und Rest bekommt default 0 in der Admin-Spalte, jetzt möchte ich wenn sich der Benutzer überprüfen mit seiner E-Mail und Passwort, dass er und Admin oder nicht ist, und wird auf die richtige Seite weitergeleitet werden. Diese

ist, was ich habe:

<?php 
require('db.php'); 
// If form submitted, insert values into the database. 
if (isset($_POST['submitLogin'])){ 
    $fldEmail = $_POST['fldEmail']; 
    $fldPassword = $_POST['fldPassword']; 
    $fldEmail = stripslashes($fldEmail); 
    $fldEmail = mysqli_real_escape_string($connection, $fldEmail); 
    $fldPassword = stripslashes($fldPassword); 
    $fldPassword = mysqli_real_escape_string($connection, $fldPassword); 
//Checking is user existing in the database or not 
    $query = "SELECT * FROM `klanten` WHERE fldEmail='$fldEmail' and fldPassword='".md5($fldPassword)."' "; 
    $result = mysqli_query($connection, $query) or die(mysqli_error($connection)); 
    $rows = mysqli_num_rows($result); 
    if($rows==1){ 
     $_SESSION['fldEmail'] = $fldEmail; 
     header("Location: login.php"); // redirect user to login 
     }else{ 
      echo "<p class=\"warning\"><span class=\"fa fa-warning\"></span>password of emailadres dat u heb ingevuld is niet juist, probeer opnieuw.<span class=\"fa fa-warning\"></span></p>"; 
      } 
}else{ 
?> 
<div class="formLogin"> 
<p class="opening">Onze promoties voor klanten zijn enkel te zien als u zich inlogt</p> 
<p class="opening">Log je nu in, of maak een <a class="registerlink" href="#formRegister">account</a> aan.<p> 
<form action="" method="post" name="login" id="formLogin"> 
<input type="email" name="fldEmail" placeholder="Emailadres" pattern="[a-z0-9._%+-][email protected][a-z0-9.-]+\.[a-z]{2,3}$" required /> 
<input type="password" id="test1" name="fldPassword" placeholder="password" pattern=".{6,}" title="6 of meer characters verplicht" required /> 
<div class="check"><input id="test2" type="checkbox" /><label for="test2" class="checkbox">Show password</label></div> 
<input name="submitLogin" type="submit" value="Login" id="submitLogin"/> 
</form> 
</div> 
<?php } ?> 

Und das ist, was ich versucht und funktioniert nicht: https://gyazo.com/9c64c16db8a5960d5586cf9a9c8de49d

Mit freundlichen Grüßen

+0

Sid enote curiousity: Ist das für eine Live-Site gedacht, die diesen md5-Hash verwendet? –

+0

Nein, das ist für mein Endprojekt in der Schule, könntest du erklären, warum der MD5-Hash nicht gut für eine Live-Website ist? Ich würde mich freuen, es für das Projekt zu ändern, wenn es nicht gut für die Sicherheit ist –

+0

Haben Sie eine Lektüre => http://security.stackexchange.com/questions/19906/is-md5-betrachtet-inspizieren, es ist alles drin; -) Nun, ein guter Teil davon sowieso. –

Antwort

0

Sie können das Ergebnis von Ihrem ersten Abfrage nur zugreifen und sehen, ob der Benutzer ein Admin ist oder nicht:

$query = "SELECT fldEmail, admin FROM `klanten` WHERE fldEmail='$fldEmail' and fldPassword='".md5($fldPassword)."' "; 
$result = mysqli_query($connection, $query) or die(mysqli_error($connection)); 
$rows = mysqli_num_rows($result); 
if($rows==1){ 
    $row = mysqli_fetch_row($result) 
    $_SESSION['fldEmail'] = $row[0]; //contains the email 
    if($row[1] == 1) { 
     // this user is an admin 
    } 

    header("Location: login.php"); // redirect user to login 
    }else{ 
...