inlog systeem in php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Richard Hoek

Richard Hoek

01/10/2014 15:01:51
Quote Anchor link
Hallo,

ik moet voor een opdracht een inlog systeem maken.
aangezien in een registratie formulier heb gemaakt staat er in mijn database de wachtwoorden en gebruikersnamen.

ik probeer nu in te loggen met een goeie combinatie van een wachtwoord en gebruikers naam. alleen hij zegt de heletijd dat de combinatie niet goed is. Terwijl t in de database wel zo is.

Zou iemand naar mijn code willen kijken.
Misschien kunnen jullie wat vinden?

alvast bedankt.

Richard.



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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php

include ('config.php');


// Gebruikersnaam en wachtwoord instellen
 

// Controle of het formulier verzonden is

if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    // Controle of benodigde velden wel ingevuld zijn
    if(isset($_POST['gebruikersnaam'], $_POST['wachtwoord']))
    {
    
        // Overbodige spaties verwijderen
        $gebruikersnaam = trim($_POST['gebruikersnaam']);
        $wachtwoord = trim($_POST['wachtwoord']);
         $sql = ("SELECT gebruikersnaam FROM registreren WHERE gebruikersnaam='". $gebruikersnaam . "'");
         $query = ("SELECT wachtwoord FROM registreren WHERE wachtwoord='". $wachtwoord . "'");
        // Gebruikersnaam en wachtwoord controleren
        if($sql == $gebruikersnaam && $query == $wachtwoord)
        {

            // Juiste gebruikersnaam en wachtwoord: inloggen!
            $_SESSION['logged_in'] = true;
            $_SESSION['gebruiker'] = $gebruikersnaam;
            
            // Doorsturen en melding geven
            header('Refresh: 3; url=login.php');
            echo 'Je bent succesvol ingelogd. Je wordt doorgestuurd.';
        }

        else
        {
            // Terugsturen en foutmelding geven
            header('Refresh: 3; url=aanmelden.php');
            echo 'Deze combinatie van gebruikersnaam en wachtwoord is niet juist!';
        }
    }

    else
    {
        header('Refresh: 3; url=aanmelden.php');
        echo 'Een vereist veld bestaat niet!';
    }
}

else
{
    // Terug naar het formulier
    header('Location: aanmelden.php');
    exit();
}

?>
 
PHP hulp

PHP hulp

25/12/2024 13:56:07
 
Ward van der Put
Moderator

Ward van der Put

01/10/2014 15:29:01
Quote Anchor link
Je voert de queries niet uit. Je vergelijkt in if($sql == $gebruikersnaam && $query == $wachtwoord) alleen maar strings. De string uit $_POST['gebruikersnaam'] zal daarbij nooit gelijk zijn aan de string SELECT gebruikersnaam FROM registreren WHERE gebruikersnaam='...'.
 
- SanThe -

- SanThe -

01/10/2014 15:33:41
Quote Anchor link
Stel dat wat Ward aanhaalt gefixed is en de query's worden uitgevoerd.
Dan ben je dus ingelogd als je een gebruikersnaam hebt en een wachtwoord die misschien helemaal niet bij elkaar horen.
 
Obelix Idefix

Obelix Idefix

01/10/2014 19:55:47
Quote Anchor link
Ik zou geen trim gebruiken bij het wachtwoord, maar een degelijke/veilige encryptie (bcrypt bijvoorbeeld (http://www.phphulp.nl/php/script/beveiliging/hash-bcrypt-class-encryption/1954/)).

Verder zou ik niet met een header gaan werken bij het tonen van (fout)meldingen.
 



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.