ledenscript

Gesponsorde koppelingen

PHP script bestanden

  1. ledenscript

« Lees de omschrijving en reacties

omdat de code wat lang is van het hele script kan je het op volgende link in een zip downloaden http://www.jb-web.org/downloads/scripts/php/ledenscript.zip.

Hieronder vind u wel de code van login.inc.php terug die de SESSIES en COOKIES beheerd bij het inloggen.

voor de uitleg erbij
code van voorbeeld.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
<?php
if (! isset($_COOKIE['testcookie'])) {
    setrawcookie("testcookie", "test", time()+3600*24*365*30);
}

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Hoofdpagina Website</title>

<link href="../css/style.css" rel="stylesheet" type="text/css" />

<?php
/* er worden 4 SESSION waardes teruggegeven als de gebruiker is ingelogd:
    - $_SESSION['sid']  moet je toevoegen aan elke url waarnaar je doorverwijsd en je de SESSIE wil bewaren als er geen cookies aanvaard worden door de gebruiker zijn browser.
    - $_SESSION['right_id']  komt overeen met de waardes die je in je array moet vermelden.
    - $_SESSION['right_name'] de naam van gebruiker zijn recht en ook hieronder beschreven in de array documentatie.
    - $_SESSION['right_description'] een korte omschrijving van de rechten van de gebruiker.
*/

// hieronder geef je de cijfers op in een array van de benodigde rechten om de pagina te openen.

$rights = array(1, 2); // 0 = new, 1 = admin, 2 = mod, 3 = crew, 4 = trusted, 5 = member
?>


</head>

<body>

<div>
Hier kan je inhoud zetten die voor iedereen zichtbaar mag zijn.
</div>

<?php
require_once("../includes/login.inc.php");
?>


<div>
Hier kan je inhoud zetten die zichtbaar mag zijn voor al de leden ongeacht hun rechten.
<input class="button" onclick="window.location='../registreer.php'" type="button" value="Registreer" />
</div>

<div>
<?php
if (in_array($_SESSION['right_id'], $rights)) {
    echo "Hier kan je inhoud zetten die zichtbaar mag zijn voor de gebruiker die voldoet aan de rechten in \$rights.<br />";
}
else {
    echo "Hier kan je een mededeling zetten indien de gebruiker niet voldoet aan de rechten in \$rights.<br />";
}


echo "Je hebt <b>" . $_SESSION['right_name'] . "</b> rechten.<br />";
echo "<textarea rows=\"7\" cols=\"63\" readonly=\"readonly\">" . $_SESSION['right_description'] . "</textarea>";
?>

</div>

<a href="<?php    echo $_SERVER['PHP_SELF'] . "?" . $_SESSION['sid']; ?>">Herladen</a>

</body>
</html>


code van login.inc.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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
<?php
error_reporting(E_ALL);
session_start();

$path_to_script = "scripts/Eigen Scripts/ledenscript/includes"; // geef hier het path naar het script tov de server root

/*********************************
 * HIERONDER NIETS MEER WIJZIGEN *
 *********************************/
/* nagaan of de gebruiker zijn browser cookies aanvaard
   testen of eerder aangemaakte cookie 'testcookie' aanwezig is.
*/

if (isset($_COOKIE['testcookie'])) { // cookie aanwezig, url zonder SESSID instellen
    $_SESSION['url'] = $_SERVER['PHP_SELF'];
    $_SESSION['sid'] = "";
}
else { // cookie NIET aanwezig, url MET doorgeven SESSID instellen
    $_SESSION['sid'] = htmlspecialchars(sid);
    $_SESSION['url'] = $_SERVER['PHP_SELF'] . "?" . htmlspecialchars(sid);
    setrawcookie("testcookie", "test", time()+3600*24*365*30);
}


// benodigde bestanden invoegen
require_once($_SERVER['DOCUMENT_ROOT'] . "/" . $path_to_script . "/config.inc.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/" . $path_to_script . "/mysql_config.inc.php"); // Mysql gegevens inladen
require_once($_SERVER['DOCUMENT_ROOT'] . "/" . $path_to_script . "/mysql_functies.inc.php"); // Mysql functies inladen

// bezoeker status instellen als niet ingelogged.

$user_verified = FALSE;

if (isset($_COOKIE[$cookie_name])) {
    $cookiedata = explode("/", $_COOKIE[$cookie_name]);
    list($coo_username, $coo_password, $coo_user_ip, $coo_verified, $cookie_remember) = $cookiedata;
    if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['verifypassword'])) {
        if ($coo_password == sha1(md5($_POST['verifypassword']))) {
            $coo_verified = time();
            if ($cookie_remember == TRUE) {
                setrawcookie($cookie_name, $coo_username . "/" . $coo_password . "/" . $coo_user_ip . "/" . $coo_verified . "/TRUE", time()+3600*24*365*30, $cookie_path, $cookie_domain);
            }
elseif ($cookie_remember == FALSE) {
                setrawcookie($cookie_name, $coo_username . "/" . $coo_password . "/" . $coo_user_ip . "/" . $coo_verified . "/FALSE", 0, $cookie_path, $cookie_domain);
            }
        }
else {
            echo "!! PASWORD VERIFICATION FAILED !!<br /> Gelieve opnieuw in te loggen";
            setrawcookie($cookie_name, "dummy", time()-3600*24*365, $cookie_path, $cookie_domain);
            header("Refresh: 2; URL= " . $_SESSION['url']);
            exit;
        }
    }

    dbconnect($host, $dbuser, $dbpass, $dbname);
    $query = "SELECT user_ip FROM leden_stats, leden_profile WHERE leden_profile.username='" . $coo_username . "' AND leden_profile.password='" . $coo_password . "'";
    $result = mysql_query($query);
    if (mysql_num_rows($result)) {
        $db_user_ip = implode(mysql_fetch_row($result));
        if ($db_user_ip == $coo_user_ip) {
            $query = "SELECT recht_id, recht_naam, recht_omschrijving FROM leden_rights, leden_stats WHERE leden_rights.recht_id=leden_stats.rechten AND leden_stats.username='" . $coo_username . "'";
            $result = mysql_query($query);
            $rights_info = mysql_fetch_row($result);
            list($_SESSION['right_id'], $_SESSION['right_name'], $_SESSION['right_description']) = $rights_info;
            if ($time_verify) {
                if ($coo_verified >= time()- $verify_after) {
                    $username = $coo_username;
                    $user_ip = $_SERVER['REMOTE_ADDR'];
                    $user_verified = TRUE;
                }
else {
                    echo "Het is meer dan " . date("H:i:s", mktime(0,0,$verify_after)) ." geleden dat je geverifiëerd werd.<br />";
                    echo "Gelieve je wachtwoord opnieuw in te geven";
                    ?>

                    <form action="<?php echo $_SESSION['url']; ?>" method="post">
                        <b>Password:</b>
                        <input class="input" name="verifypassword" type="password" style="width: 100px" />
                        <input class="button" name="login" type="submit" value="Verifi&euml;er" />
</form>
                    <?php
                    exit;
                }
            }
else {
                $username = $coo_username;
                $user_ip = $_SERVER['REMOTE_ADDR'];
                $user_verified = TRUE;
            }

            mysql_query("UPDATE leden_stats SET online=1, laatst_actief='" . date('U') . "', user_ip='" . $user_ip . "', laatste_bezoek = '" . date('YmdHis') . "' WHERE username = '" . $username . "'");    
        }
else {
            echo "!! IP NIET OK !!<br /> Er werd een cookie teruggevonden maar de data erin is corrupt! Gelieve opnieuw in te loggen";
            setrawcookie($cookie_name, "dummy", time()-3600*24*365, $cookie_path, $cookie_domain);
            // cookies verwijderen, database updaten indien nodig.
        }
    }
else {
        echo "!! PASWOORD NIET OK !!<br /> Er werd een cookie teruggevonden maar de data erin is corrupt! Gelieve opnieuw in te loggen";
        setrawcookie($cookie_name, "dummy", time()-3600*24*365, $cookie_path, $cookie_domain);
        // cookies verwijderen, database updaten indien nodig.
    }
    mysql_free_result($result);
    mysql_close($m_connect);
}
elseif (isset($_SESSION['username'], $_SESSION['password'], $_SESSION['user_ip'], $_SESSION['verified'])) {
    if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['verifypassword'])) {
        if ($_SESSION['password'] == sha1(md5($_POST['verifypassword']))) {
            $_SESSION['verified'] = time();
        }
else {
            echo "!! PASWORD VERIFICATION FAILED !!<br /> Gelieve opnieuw in te loggen";
            session_destroy();
            header("Refresh: 2; URL= " . $_SESSION['url']);
            exit;
        }
    }

    if ($_SESSION['user_ip'] == $_SERVER['REMOTE_ADDR']) {
        if ($time_verify) {
            if ($_SESSION['verified'] >= time()- $verify_after) {
                $user_verified = TRUE;
            }
else {
                echo "Het is meer dan " . date("H:i:s", mktime(0,0,$verify_after)) ." geleden dat je geverifiëerd werd.<br />";
                echo "Gelieve je wachtwoord opnieuw in te geven";
                ?>

                <form action="<?php echo $_SESSION['url']; ?>" method="post">
                    <b>Password:</b>
                    <input class="input" name="verifypassword" type="password" style="width: 100px" />
                    <input class="button" name="login" type="submit" value="Verifi&euml;er" />
</form>
                <?php
                exit;
            }
        }
else {
            $user_verified = TRUE;
        }
    }
    
}
elseif ($_SERVER['REQUEST_METHOD'] === "POST" && isset($_POST['login'], $_POST['username'], $_POST['password']) && strtolower($_POST['login']) === "inloggen") {
    $username = trim($_POST['username']);
    $password = trim($_POST['password']);
    if(preg_match('~["*$<>{}()\[\]§!\'´`áéíóúàèìòùçµäëïö\\\ü]~', $username)) {
        echo "De gebruikersnaam bevat ongeldige tekens! Probeer opnieuw.";
    }
elseif(empty($username)) {
        echo "Gelieve een Gebruikersnaam in te vullen.";
    }
elseif (empty($password)) {
        echo "Gelieve een wachtwoord in te vullen.";
    }
else {
        dbconnect($host, $dbuser, $dbpass, $dbname);
        $query = "SELECT password FROM leden_profile WHERE username='" . $username . "'";
        $result = mysql_query($query);
        if (mysql_num_rows($result) === 1) {
            $db_user_password = implode(mysql_fetch_row($result));
            if ($db_user_password == sha1(md5($password))) {
                $query = "SELECT recht_id, recht_naam, recht_omschrijving FROM leden_rights, leden_stats WHERE leden_rights.recht_id=leden_stats.rechten AND leden_stats.username='" . $username . "'";
                $result = mysql_query($query);
                $rights_info = mysql_fetch_row($result);
                list($_SESSION['right_id'], $_SESSION['right_name'], $_SESSION['right_description']) = $rights_info;
                $password = sha1(md5($password));
                $user_ip = $_SERVER['REMOTE_ADDR'];
                $verified = time();
                if (isset($_COOKIE['testcookie'])) {
                    if (isset($_POST['remember']) && $_POST['remember'] == "remember") {
                        setrawcookie($cookie_name, $username . "/" . $password . "/" . $user_ip . "/" . $verified . "/TRUE", time()+3600*24*365*30, $cookie_path, $cookie_domain);
                    }
else {
                        setrawcookie($cookie_name, $username . "/" . $password . "/" . $user_ip . "/" . $verified . "/FALSE", 0, $cookie_path, $cookie_domain);
                    }
                }
else {
                    $_SESSION['username'] = $username;
                    $_SESSION['password'] = $password;
                    $_SESSION['user_ip'] = $user_ip;
                    $_SESSION['verified'] = $verified;
                }

                $user_verified = TRUE;
                mysql_query("UPDATE leden_stats SET online=1, laatst_actief='" . date('U') . "', user_ip='" . $user_ip . "', aantal_bezoeken=(aantal_bezoeken+1) WHERE username = '" . $username . "'");
            }
else {
                echo "Foutief Paswoord.";
            }
        }
else {
            echo "Je gebruikersnaam kan niet gevonden worden gelieve je te registreren.";
        }

        mysql_close($m_connect);
    }
}

if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['logout']) && strtolower($_POST['logout']) == "uitloggen") {
    if (isset($_COOKIE[$cookie_name])) {
        setrawcookie($cookie_name, "dummy", time()-3600*24*365, $cookie_path, $cookie_domain);
        session_destroy();
    }
else {
        session_destroy();
    }

    dbconnect($host, $dbuser, $dbpass, $dbname);
    mysql_query("UPDATE leden_stats SET online=0, laatst_actief='" . date('U') . "', user_ip='" . $user_ip . "' WHERE username = '" . $username . "'");
    mysql_close($m_connect);    
    echo "U wordt Uitgelogged";
    header("Refresh: 2; URL= " . $_SERVER['PHP_SELF']);
    exit;
}

if (! $user_verified) {
    ?>

    <form action="<?php echo $_SESSION['url']; ?>" method="post">
        <b>Username:</b>
        <input class="input" name="username" type="text" style="width: 100px" />
        <b>Password:</b>
        <input class="input" name="password" type="password" style="width: 100px" />
        <?php
        if (isset($_COOKIE['testcookie'])) {
            ?>

            <input type="checkbox" name="remember" value="remember" style="width: 15px" />Onthouden
            <?php
        }
        ?>

        <input class="button" name="login" type="submit" value="Inloggen" />
        <input class="button" onclick="window.location='../registreer.php'" type="button" value="Registreer" />
</form>
    <?php
    exit;
}
else {
    ?>

    <form action="<?php echo $_SESSION['url']; ?>" method="post">
        <input class="button" name="logout" type="submit" value="Uitloggen" />
</form>
    <?php
}
?>

 
 

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.