2017-03-25 12 views
-2

Ich habe Login-Formular mit PHP-Code erstellt, und es funktioniert gut, aber ich versuche mehrere Zugriffe für verschiedene Benutzer.Ich habe neue Spalte in meiner Tabelle Benutzer (user_type) hinzugefügt und ich habe bereits gelesen Thema in dieser Website hilft aber leider nicht. dies ist mein Code:Zugriff auf verschiedene Benutzer Login in PHP

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> 
 
    
 
    
 
</head> 
 
<body> 
 
\t <?PHP 
 
     include ('header.php'); 
 
     include ('setting.php'); 
 
     session_start(); 
 
    ?> 
 

 
<div class="container"> 
 
\t <div class="row"> 
 
\t 
 
     <div class="col-md-6 col-md-offset-3"> 
 
    <h4 style="border-bottom: 1px solid #c5c5c5;"> 
 
    <i class="fa fa-h-square" style="font-size:24px"></i> 
 
    Account Access for Hospital member 
 
    </h4> 
 
    <div style="padding: 20px;" id="form-olvidado"> 
 
    <form accept-charset="UTF-8" role="form" id="login-form" action="hospital_signin.php" method="post"> 
 
     <fieldset> 
 
     <div class="form-group input-group"> 
 
      <span class="input-group-addon"> 
 
      @ 
 
      </span> 
 
      <input class="form-control" placeholder="UserName" name="username" required="" autofocus=""> 
 
     </div> 
 
     <div class="form-group input-group"> 
 
      <span class="input-group-addon"> 
 
      <i class="glyphicon glyphicon-lock"> 
 
      </i> 
 
      </span> 
 
      <input class="form-control" placeholder="Password" name="password" type="password" value="" required=""> 
 
     </div> 
 
     <div class="form-group"> 
 
      <button type="submit" name="login" class="btn btn-primary btn-block"> 
 
      Login 
 
      </button> 
 
      <p class="help-block"> 
 
      <a class="pull-right text-muted" href="hospital_signup.php" id="olvidado"><small>New User</small></a> 
 
      </p> 
 
     </div> 
 
     </fieldset> 
 
    </form> 
 
    </div> 
 
    
 
</div> 
 
\t </div> 
 
</div> 
 
<script> 
 
\t $(document).ready(function() { 
 
    $('#olvidado').click(function(e) { 
 
    e.preventDefault(); 
 
    $('div#form-olvidado').toggle('500'); 
 
    }); 
 
    $('#acceso').click(function(e) { 
 
    e.preventDefault(); 
 
    $('div#form-olvidado').toggle('500'); 
 
    }); 
 
}); 
 
</script> 
 
<?PHP 
 
    if (isset($_POST['login'])) { 
 
     $username =mysqli_real_escape_string($conn,$_POST['username']); 
 
     $password =mysqli_real_escape_string($conn,$_POST['password']); 
 
     
 
     $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'"; 
 
     $run = mysqli_query($conn,$sql); 
 
     $check = mysqli_num_rows($run); 
 

 
     if ($check==0){ 
 
      echo "<script>alert('username or password is incorrect , try again! ')</script>"; 
 
      exit(); 
 
     } 
 
     else { 
 
      $_SESSION['username']=$username; 
 
      echo "<script>alert('welcome doctor ')</script>"; 
 
      echo "<script>window.open('hospital_form.php','_self')</script>"; 
 
     } 
 

 

 
    } 
 
include ('footer.php'); 
 
?> 
 

 
</body> 
 
</html>

Ich würde sehr für die Hilfe :)

+0

Und was ist das Problem? –

+0

Sie sollten klären, wofür Sie Hilfe benötigen. Was versuchen Sie zu erreichen, was nicht funktioniert, erhalten Sie Fehler? – JimL

+0

danke für die Wiedergabe, diese Code-Arbeit, was ich will ist, wie Sie den Zugriff für verschiedene Benutzer auf verschiedenen Seiten machen. Zum Beispiel hat der Admin-Benutzer andere Seiten als andere Benutzer. Ich möchte PHP-Code bearbeiten, um als Administrator und normaler Benutzer auf verschiedene Seiten gehen zu können Wunsch, ich könnte gut erklären –

Antwort

0

Zunächst einmal geschätzt werden, müssen Sie user_type von Ihrer DB holen. Es ist auch nicht die beste Vorgehensweise, alle (*) aus der DB auszuwählen, ganz spezifisch.

$sql = "SELECT username, password, user_type FROM users WHERE username='$username' AND password='$password'"; 

Ihre Prüfbedingung sollte prüfen, ob wahr, nicht anders. Sie überprüfen, ob $ num_rows nicht 0 ist. Wenn also mysqli_query() false zurückgibt, melden Sie sich beim Benutzer an? Das ist nicht gut. Prüfen wenn true -> anmelden

We gonna Header-Funktion, um den Code hinzufügen, so dass, wenn user_type admin es wird ihn umleiten, admin.php wenn nicht, wird der Benutzer

auf index.php umgeleitet werden Beispiel für das oben genannte:

$run = mysqli_query($conn,$sql); 
$check = mysqli_num_rows($run); 

if ($check == 1){ 

    #fetch the information 
    $row = mysqli_fetch_assoc($run); 

    # Save username and user type 
    $user_type = $row['user_type']; 
    $_SESSION['username'] = $row['username']; 
    $_SESSION['user_type'] = $user_type; 

    # Check is user is admin or not and redirect him 
    if($user_type == 'admin') { 

     header('Location: path/to/admin.php'); 

    } else { 

     header('Location: path/to/index.php'); 

    } 


} else { 

    # No user found, redirect him back to login page 
    header('Location: path/to/login.php'); 

} 
+0

Ich schätze Ihre Hilfe es zeigt die Login-Seite ist das bedeutet –

+0

Mein schlechtes, ich habe vergessen hinzuzufügen; nach $ user_type = $ row ['user_type'] Ich bearbeite die ursprüngliche Antwort. – AltzeM

+0

Ich schätze Ihre Hilfe es zeigt die Login-Seite ist das bedeutet # Kein Benutzer gefunden, umleiten ihn zurück zur Anmeldeseite header ('Ort: path/to/login.php'); –

Verwandte Themen