inlogsysteem-1-gebruiker

Gesponsorde koppelingen

PHP script bestanden

  1. inlogsysteem-1-gebruiker

« Lees de omschrijving en reacties

include.inlog.php:

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<?php
[code]<?php
    if(empty($_SESSION)) //als er nog geen sessie gestart is
    {
        session_start(); //dan starten wij hem wel
    }
    
    /**
    * Check of variabele bestaat
    *
    * @param string $x de variabele waarvan bekeken moet worden of hij bestaat
    * @param string $y de waarde die gereturned moet worden wanneer $x niet bestaat
    * @param string $z achtervoegsel wat achter $x wordt geplakt als deze bestaat
    * @return string $x.$z of $y
    */

    
    function ifset(&$x, $y = null,$z=null)
    {

        return isset($x) ? $x.$z : $y;
    }


    /**
    * Toon het inglogformulier
    *
    * @param array $aErrors een array met errors die getoond worden in het formulier
    * @return string het inlogformulier
    */

    
    function toonInlogFormulier($aErrors = array())
    {

        return     '<span class="formError">'.ifset($aErrors['global'],null,'<br /><br />').'</span><form action="'.$_SERVER['SCRIPT_NAME'].'" method="post">
                    <label for="username">Gebruikersnaam:</label>    <input type="text"         name="username" id="username"    value="'
.ifset($_POST['username']).'" /> <span class="formError">'.ifset($aErrors['username']).'</span><br />
                    <label for="password">Wachtwoord:</label>        <input type="password"     name="password" id="password"    value="'
.ifset($_POST['password']).'" /> <span class="formError">'.ifset($aErrors['password']).'</span><br />
                    <br />
                    <input type="submit" value="Inloggen" />
                </form>'
;
    }

    
    /**
    * Valideer het inglogformulier
    *
    * @param string $sUsername de correcte username
    * @param string $sPassword een md5 hash van het correcte wachtwoord
    * @return string het inlogformulier bij een foutieve login
    */

    
    function validateInlogformulier($sUsername, $sPassword)
    {

        $aErrors = array();
        
        if($_SERVER['REQUEST_METHOD'] == 'POST') //wanneer er een post request is uitgevoerd
        {
            if(empty($_POST['username']))        { $aErrors['username']         = 'Geef een gebruikersnaam op'; } //checken we of er een username
            if(empty($_POST['password']))        { $aErrors['password']        = 'Geef een wachtwoord op'; } //en password is opgegeven
            
            if(empty($aErrors)) //zo ja
            {
                if($_POST['username'] == $sUsername && md5($_POST['password']) == $sPassword) //Is het de goede username en het goede password
                {
                    $_SESSION['loggedin'] = md5($_SERVER['REMOTE_ADDR']); //dan zetten we een sessie met een hash van het ip
                    header('Location: '.$_SERVER['SCRIPT_NAME']); //en redirecten we de user weer naar deze pagina
                    exit(); //er hoeft nu dus niets meer uitgevoerd te worden
                }
                else //is het een verkeerde combinatie
                {
                    $aErrors['global'] = 'Foutieve inloggegevens'; //dan zetten we dat in de error array
                }
            }

            
            return toonInlogFormulier($aErrors); //We tonen het inlogformulier opnieuw, ditmaal met (een) error(s)
        }
    }

    
    /**
    * Check of een gebruiker is ingelogd
    *
    * @return boolean
    */

    
    function isIngelogd()
    {

        if(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == md5($_SERVER['REMOTE_ADDR'])) //als de sessie bestaat en de waarde in de sessie is een md5 hash van het ip
        {
            return true; //dan geven we true terug
        }
        else //anders is een gebruiker niet ingelogd
        {
            return false; //en returnen we false
        }
    }

    
    /**
    * Toon of valideer het inlogformulier
    *
    * @param string $sUsername de correcte username
    * @param string $sPassword een md5 hash van het correcte wachtwoord
    * @return string
    */

    
    function login($sUsername, $sPassword)
    {

        if($_SERVER['REQUEST_METHOD'] == 'POST') //als er een post request is uitgevoerd
        {
            return validateInlogformulier($sUsername, $sPassword); //dan gaan we het formulier valideren
        }
        else //als er geen post request is uitgevoerd
        {
            return toonInlogFormulier(); //dan is tonen genoeg
        }
    }


    /**
    * Log een gebruiker uit
    */

    
    function loguit()
    {

        unset($_SESSION['loggedin']); //we verwijderen de sessie
        header('Location: '.$_SERVER['SCRIPT_NAME']); //en sturen de gebruiker door naar de huidige pagina
    }
?>


[b]Voorbeeld van gebruik:[/b]
<?php
    session_start(); //start een sessie, niet noodzakelijk wordt namelijk ook in include.inlog.php gedaan, maar ter illustratie dat dit geen error oplevert
    
    include 'include.inlog.php'; //include onze inlogfuncties
    
    if(!isIngelogd()) //als iemand niet is ingelogd
    {
        echo login('username', '5f4dcc3b5aa765d61d8327deb882cf99'); //dan tonen we het inglogdformulier. (inlognaam: username, wachtwoord: password)
    }
    elseif(isset($_GET['loguit'])) //als iemand uit wil loggen
    {
        loguit(); //dan mag dat
    }
    else
    {
        echo 'ingelogd. <a href="?loguit">loguit</a>'; //en anders mag je zelf weten wat je doet
    }
?>

 
 

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.