-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.php
89 lines (66 loc) · 3.33 KB
/
index.php
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
<?php
/*
* Trabalhar com o conceito de sessões permite que um conjunto de dados possam ser utilizados
* por um usuário durante todo o tempo em que acessa e navega dentro de uma aplicação Web,
* sendo persistidos.
* Só dar um session_start() no começo do arquivo PHP e usar o variável global $_SESSION que a informação trafega
* de página em página dentro da minha aplicação, ela estarão lá a qualquer hora ou lugar,
* só sairá quando se fechar o navegador ou depois de um tempo sem mexer com o sistema.
*
*/
session_start(); //A função session_start() permite iniciar uma nova sessão ou resumir (continuar) uma sessão já existente.
require_once('config.php'); //importa as informações do ficheiro config.php
require_once('functions/url.php'); //importa as funções do ficheiro url.php
require_once('functions/message.php'); //importa as funções do ficheiro message.php
require_once('functions/auth.php'); //importa as funções do ficheiro auth.php
require_once('functions/database.php');
/*
* Esse código abaixo irá fazer a nossa logação ao banco de dados.
* Nota: quando uma instância é criada, estamos na verdade a criar um "objeto" daquele "molde".
* DSN - "Data Source Name"
* POD - "PHP Data Object"
*/
$dsn = 'mysql:dbname='.DB_NAME.';host='.DB_HOST.';port='.DB_PORT; // A variável dsn recebe o caminho da base de dados, concatenando as constantes.
$pdo = new PDO($dsn, DB_USER, DB_PASS); //Função nativa do PHP. A variável pdo recebe a declaração de uma instância da classe PDO(classe interna do PHP assim como empty) com o palavra reservada "new" com 3 argumentos.
/*
* Lembrando que a super global GET pega as informações da URL.
* query string : ?nome=Maria (1 chave, 1 valor) ou ?nome=Maria&idade=46 (quando se há mais de 1 valor)
*
*/
if(empty($_GET['route'])){ // Se a super global estiver vazia.
$page = 'login';
} else { //se não estiver vazia.
$page = $_GET["route"];
}
/*
* A condição SWITCH é parecida com a IF.
* Essa condição vai servir de controlador, medidas serão tomadas caso detectem
* se tentar aceder uma página na qual não tenha acesso, seja por não está autenticado ou não ter preenchido
*
*/
switch ($page) { // Muda ou troca a variavel page caso:
case 'dashboard': //$page = 'dashboard'
require_once('controllers/dashboard.php');
break;
case 'authenticate': //$page = 'authenticate'
require_once('controllers/authenticate.php');
break;
case 'logout': //$page = 'logout'
require_once('controllers/logout.php');
break;
default:
break;
}
$page_template = 'templates/page_' . $page . '.php'; //Inserido na variável abaixo uma concatenação de string e variável para sr usada como query string.
require_once 'templates/head.php'; //importa o ficheiro head.php
/*
* Essa condição verifica se a variável é um ficheiro e se ele existe.
* Nesse caso, ele importará uma parte do meio do HTML,
* tudo que contém page: $page_template = 'templates/page_' . $page . '.php'
*/
if (file_exists($page_template)) { // A função file_exists irá verificar se é um ficheiro e se existe.
require_once $page_template;
} else { // Senão irá retornar a pagina de não encontrado.
require_once 'templates/page_not_found.php';
}
require_once 'templates/foot.php'; // importa o ficheiro foot.php.