├── .idea
├── vcs.xml
├── .gitignore
├── modules.xml
├── sbase-study-task01.iml
└── php.xml
├── app
├── config.php
├── Validator.php
├── header.php
├── models
│ └── User.php
└── controllers
│ └── UserController.php
└── public
├── js
└── functions.js
├── index.php
├── login.php
└── register.php
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 | # Editor-based HTTP Client requests
5 | /httpRequests/
6 | # Datasource local storage ignored files
7 | /dataSources/
8 | /dataSources.local.xml
9 |
--------------------------------------------------------------------------------
/app/config.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/sbase-study-task01.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/public/js/functions.js:
--------------------------------------------------------------------------------
1 | function validate (username, password) {
2 | let error = false
3 | if (username.length < 4) {
4 | $("#username").css('border', 'solid red 2px')
5 | alert('Username min length 4')
6 | error = true
7 | }
8 | if (!username.match(/^[a-zA-Z0-9]*$/)) {
9 | $("#username").css('border', 'solid red 2px')
10 | alert('Username only letters or numbers')
11 | error = true
12 | }
13 | if (password.length < 6) {
14 | $("#password").css('border', 'solid red 2px')
15 | alert('Password min length 6')
16 | error = true
17 | }
18 | return !error;
19 | }
--------------------------------------------------------------------------------
/app/Validator.php:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
13 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/.idea/php.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/public/index.php:
--------------------------------------------------------------------------------
1 |
5 |
6 | Home page
7 |
8 | Welcome,
9 |
10 |
11 |
12 |
13 |
14 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/app/models/User.php:
--------------------------------------------------------------------------------
1 | prepare($sql);
11 | $stmt->execute(['username' => $username, 'password' => md5($password)]);
12 | return ['success' => true];
13 | } catch (PDOException $e){
14 | return ['success' => false, 'error' => 'Username already exist'];
15 | }
16 | }
17 | static function login ($username, $password)
18 | {
19 | try {
20 | $pdo = db_connect();
21 | $sql = 'SELECT * FROM Users WHERE username = :username';
22 | $stmt = $pdo->prepare($sql);
23 | $stmt->execute(['username' => $username]);
24 | $user = $stmt->fetchAll();
25 | if ($user && $user[0]['password'] == md5($password)) {
26 | return ['success' => true];
27 | } else {
28 | return ['success' => false, 'error' => 'Invalid username or password'];
29 | }
30 | } catch (PDOException $e){
31 | return ['success' => false, 'error' => $e];
32 | }
33 | }
34 | }
--------------------------------------------------------------------------------
/public/login.php:
--------------------------------------------------------------------------------
1 |
5 |
6 | Login
7 |
8 |
9 |
17 |
18 |
48 |
49 |