· 9 years ago · Sep 21, 2017, 10:06 AM
1SQL Syntax:
2CREATE TABLE IF NOT EXISTS `Members` (
3 `Username` varchar(26) NOT NULL,
4 `Password` varchar(255) NOT NULL,
5 `loginStatus` int(1) NOT NULL,
6 `Rank` int(3) NOT NULL
7) DEFAULT CHARSET=utf8;
8INSERT INTO `Members` VALUES
9 ('', 'random_password', 0, 3),
10 ('whoami@mailing.nl', 'rand_pass', 0, 1),
11 ('skurt', 'mdrlol', 1, 1),
12 ('useless', 'again_pass', 0, 1);
13
14<?php
15if(session_status()==1)
16 session_start();
17function getDB()
18{
19 return new PDO();
20}
21
22class User
23{
24 function isLogged()
25 {
26 return isset($_SESSION['LoginData']);
27 }
28
29 function isAdmin()
30 {
31 return isLogged()&&explode($_SESSION['LoginData'], '||')[1]=="3";
32 }
33
34 function logMe($user,$pass)
35 {
36 $usn = htmlspecialchars($user);
37 $pwd = bcrypt(sha1("5TEAK1SG00DBUT54L715B3773R".$pass));
38 $db = getDB();
39 $sql = $db->prepare("SELECT Username,Password,loginStatus FROM Members WHERE Username = :usn, Password = :pwd, loginStatus != 1");
40 $sql->execute(array(":usn" => $usn, ":pwd" => $pwd));
41 if($sql->rowCount()==1)
42 {
43 $sql = $sql->fetchColumn(0);
44 $_SESSION['LoginData'] = "$usn||".$sql['Rank']."||".date();
45 return TRUE;
46 }
47 }
48
49 function createMe($user,$pass)
50 {
51 $usn = htmlspecialchars($user);
52 $pwd = bcrypt(sha1("5TEAK1SG00DBUT54L715B3773R".$pass));
53 $db = getDB();
54 $sql = $db->prepare("INSERT INTO Members VALUES (:usn, :pwd, 1, 0)");
55 return $sql->execute(array(":usn" => $usn, ":pwd" => $pwd));
56 }
57 }
58}