Login Script, Login als admin.

Status
Niet open voor verdere reacties.

Searche93

Gebruiker
Lid geworden
5 mei 2014
Berichten
13
Hallo,

Ik ben vrij nieuw met PHP en heb een inlog script gemaakt.

Hij werkt perfect, maar ik wil graag een extra controle hebben die kijkt of de status van degene die inlogt op admin staat.

Dus waarschijnlijk moet het iets zijn van als:

If $rang == admin {} <-- daar moet ik naartoe gelinkt worden waarmee ik toegang tot een paar extra functies heb (zoals bijvoorbeeld users toevoegen).
Else {} <-- en daar moeten de gewone users naartoe gelinkt worden.

Hoe zet ik deze controle in mij script?

index.php
PHP:
<html>
    <head>
        <title>Index</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        
        <link rel="stylesheet" type="text/css" href="style.css">
        <link href='http://fonts.googleapis.com/css?family=Oswald' rel='stylesheet' type='text/css'>
        
    </head>
    
    <body>
        
        <?php if (isset($_GET['p']) && $_GET['p'] == 'login_success') { ?>

            <h1>U moet eerst inloggen!</h1>

        <?php
            }
        ?>
      
        
        <fieldset>
            <legend></legend>
        
        <form name="form1" method="post" action="checklogin.php"> <br>
            <input type="text" name="myusername" id="myusername" placeholder="Gebruikersnaam" required oninvalid="this.setCustomValidity('Vul aub uw gebruikersnaam in.')"> <br>
            <input type="text" name="mypassword" id="mypassword" placeholder="Wachtwoord" required oninvalid="this.setCustomValidity('Vul aub uw wachtwoord in.')"> <br> <br>
            <a href="wachtwoordvergeten.php">Wachtwoord Vergeten?</a>
            <input type="submit" name="Submit" value="Login"> <br>
        </form>
            
        </fieldset>    
    
    </body>    
</html>



checklogin.php
PHP:
<?php

session_start();

ob_start();
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="test"; // Database name
$tbl_name="members"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){

// Register $myusername, $mypassword and redirect to file "login_success.php"
$_SESSION['myusername'] = $myusername;
$_SESSION['mypassword'] = $mypassword; 
header("location:login_success.php");   
}
else {
echo "Wrong Username or Password";
}

ob_end_flush();
?>

login_success.php
PHP:
<?php

session_start();


if (isset($_SESSION['myusername'])) { ?>

<html>
    <head>
        <title>Appels</title>
        <link rel="stylesheet" type="text/css" href="style2.css">
    </head>    
    <body>
     
        <h1></h1>
        
Gelukt..
        
    </body>
    
</html>

<?php }

else { header('Location: index.php?p=login_success'); ?> 

<?php
}
?>
 
Als ik jou was zal ik bij checklogin.php het volgende toevoegen:
Code:
$_SESSION['myrank'] = $myrank;
Hierbij is $myrank de variabel met de rang.

Als je dan vervolgens ergens op de site het volgende plaatst:
Code:
<? if($_SESSION['myrank'] == 1){
//doe iets (Admin)
}
else{
//doe iets anders (Normale Gebruiker)
}
?>
 
Help me aub, het lukt niet! haha

ik heb dit: $_SESSION['myrank'] = $myrank; toegevoegd aan mijn checklogin.php

en vervolgens dit geprobeerd op de pagina waar ik admin rechten op wil:
if($_SESSION['myrank'] == 1) {
if($_SESSION['myusername']) && ($_SESSION['myrank']== 1) {
En ik had nog iets geprobeerd maar dat ben ik vergeten..

Ik wil gewoon op de adminpagina kunnen checken of de gebruiker is ingelogd en of hij wel of geen admin rechten heeft.
Dus als myrank gelijk staat aan 1 bijvoorbeeld kan hij wel naar de admin pagina en als het gelijk staat aan 0 bijvoorbeeld word hij niet toegelaten op de admin pagina.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan