bij login geen wachtwoord controle

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robert Jansen

Robert Jansen

31/05/2016 13:36:03
Quote Anchor link
Hallo,

ik ben bezig met een login script. alleen de admin mag inloggen.
Maar bij het if statement controleert hij het wachtwoord niet. Dus je kan met een willekeurig letter inloggen. en dat is niet de bedoeling.


mijn vraag is: wat gaat er fout? Hoe controleert het script wel of het wachtwoord wat je invoert klopt in de database?

alvast bedankt.

formulier is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<form action='login.php' method='POST'>
        <label>Gebruikersnaam:</label> <input type='text' name='username' required><br /><br />
        <label>Wachtwoord: </label><input type='password' name='password' required><br />
        <input type='submit' value='Inloggen' >
    </form>


inlog script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
session_start();
include 'connect.php';
    
$a_username = $_POST ['username'];
$a_password = hash ('SHA512', $_POST ['password']);

    $sqli = "SELECT * FROM beheerder WHERE gebruikersnaam='$a_username' AND wachtwoord='$apassword' ";

    $result = mysqli_query($link, $sqli)    or    die(mysqli_error());

    
    if($a_username == "admin" and  $apassword == $a_password = hash ('SHA512', ['password'])  )
{


    //Define from form text feilds
        $username = 'username';
      $password = 'password';
        
        
             $_SESSION['username'] = 'true';
           $_SESSION['username'] = $a_username;
          
            
            //Redirect to admin page
            //include 'whitelist.php';

            header("Location: admin.php");exit();
            
        
    
}

?>

Ward:
Codetags aangepast.
Gewijzigd op 31/05/2016 13:45:14 door Ward van der Put
 
PHP hulp

PHP hulp

25/04/2024 18:25:58
 
- SanThe -

- SanThe -

31/05/2016 13:45:58
Quote Anchor link
Je voert de query uit maar je doet er verder niks mee.
Als de query 1 record oplevert zit het goed, anders niet.

Deze constructie gaat altijd iets opleveren wat je niet verwacht.
Niet gebruiken dus.
$apassword == $a_password = hash.....

Verder is de query lek, je moet input van buitenaf altijd beveiligen.
mysqli_real_escape_string().
 
Ward van der Put
Moderator

Ward van der Put

31/05/2016 13:51:17
Quote Anchor link
Na $result = mysqli_query($link, $sqli) moet je inderdaad de data nog uit de resultaatset $result halen.

Wat je ook kunt doen als je verder geen gebruikersgegevens uit de database nodig hebt, is met SELECT COUNT(*) of mysqli_num_rows() tellen of er exact 1 resultaat is.
Gewijzigd op 31/05/2016 13:53:12 door Ward van der Put
 
Robert Jansen

Robert Jansen

31/05/2016 14:24:55
Quote Anchor link
het werkt, bedankt voor info.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.