arapiraca 2013
TRANSCRIPT
Arapiraca 2013
MOISÉS SANTOS FARIAS
SISTEMA DE ENSINO PRESENCIAL CONECTADO ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
PINGO PHP Sistema Simples de Gerenciamento e Monitoramento de Pequenas
Redes Locais
Arapiraca 2013
PINGO PHP Sistema Simples de Gerenciamento e Monitoramento de Pequenas
Redes Locais
Trabalho de Conclusão de Curso apresentado à Universidade Norte do Paraná - UNOPAR, como requisito parcial para a obtenção do título de Tecnologia em Análise e Desenvolvimento de Sistemas. Tutor Orientador: Kleverson Ricardo de Melo Prof. Orientador: Marco Ikuro Hisatomi
MOISÉS SANTOS FARIAS
LISTA DE FIGURAS
Figura 1 - Login ......................................................................................................... 32 Figura 2 - Login: Alerta p/ informar o login ................................................................ 33
Figura 3 - Login: Alerta p/ informar senha ................................................................. 34 Figura 4 - Login: Alerta sobre o tamanho da senha .................................................. 35 Figura 5 - Login: Alerta sobre login com usuário não existentes no sistema ............. 36 Figura 6 - Página Inicial ............................................................................................. 37 Figura 7 - Página Inicial: botão Monitoramento ......................................................... 38
Figura 8 - Página Inicial: botão Inventário ................................................................. 39 Figura 9 - Página Inicial: botão Administração .......................................................... 40
Figura 10 - Página Inicial: botão Relatório ................................................................ 41
Figura 11 - Inventário ................................................................................................ 42 Figura 12 - Inventário: botão Estações ...................................................................... 43 Figura 13 - Inventário: botão Nós de rede ................................................................. 44 Figura 14 - Inventário: botão Dispositivos ................................................................. 45 Figura 15 - Inventário - Estações .............................................................................. 46
Figura 16 - Inventário - Estações: botão Cadastrar Estação ..................................... 47
Figura 17 - Inventário - Estações: botão Alterar estação .......................................... 48 Figura 18 - Inventário - Estações: botão Excluir Estação .......................................... 49
Figura 19 - Inventário - Estações - Cadastrar Estação: Form ................................... 50 Figura 20 - Inventário - Estações - Cadastrar Estação: alerta p/ informar nome ....... 51 Figura 21 - Inventário - Estações - Cadastrar Estação: alerta p/ informar IP ............ 52
Figura 22 - Inventário - Estações - Cadastrar Estação: alerta p/ informar Local ....... 53
Figura 23 - Inventário - Estações - Cadastrar Estação: alerta p/ informar Status ..... 54 Figura 24 - Inventário - Estações - Cadastrar Estação: alerta sobre cadastro com sucesso ..................................................................................................................... 55
Figura 25 - Inventário - Estações: listagem das estações cadastradas ..................... 56 Figura 26 - Inventário - Alterar Estação ..................................................................... 57
Figura 27 - Inventário - Alterar Estação: informa que nenhuma estação foi selecionada ............................................................................................................... 58 Figura 28 - Inventário - Alterar Estação: Form .......................................................... 59 Figura 29 - Inventário - Alterar Estação: alerta sobre estação alterada com sucesso .................................................................................................................................. 60 Figura 30 - Inventário - Estações - Excluir Estação ................................................... 61
Figura 31 - Inventário - Estações - Excluir Estação: alerta informando que nenhuma estação foi selecionada para exclusão ...................................................................... 62 Figura 32 - Inventário - Estações - Excluir Estação: alerta sobre exclusão com sucesso ..................................................................................................................... 63 Figura 33 - Inventário - Nós de Rede ........................................................................ 64
Figura 34 - Inventário - Nós de Rede: botão Cadastrar Nó de rede .......................... 65 Figura 35 - Inventário - Nós de Rede: botão Alterar Nó de rede ............................... 66 Figura 36 - Inventário - Nós de Rede: botão Excluir Nó de rede ............................... 67 Figura 37 - Inventário - Nós de Rede - Cadastrar Nó de rede: Form ........................ 68 Figura 38 - Inventário - Nós de Rede - Cadastrar Nó de rede: alerta p/ usuário informar o nome do nó de rede ................................................................................. 69 Figura 39 - Inventário - Nós de Rede - Cadastrar Nó de Rede: alerta p/ usuário informar o IP do nó de rede ....................................................................................... 70 Figura 40 - Inventário - Nós de Rede - Cadastrar Nó de rede: alerta p/ usuário
informar o local do nó de rede ................................................................................... 71
Figura 41 - Inventário - Nós de Rede - Cadastrar Nó de rede: alerta p/ usuário informar o status do nó de rede ................................................................................. 72 Figura 42 - Inventário - Nós de rede - Cadastrar Nó de Rede: informa que nó de rede foi cadastrado com sucesso ...................................................................................... 73 Figura 43 - Inventário - Nós de rede - Listagem dos nós de rede cadastrados ......... 74
Figura 44 - Inventário - Nós de Rede - Alterar Nó de rede ........................................ 75 Figura 45 - Inventário - Nós de Rede - Alterar Nós de Rede: informa que nenhum nó de rede foi selecionado para ser alterado ................................................................. 76 Figura 46 - Inventário - Nó de Rede - Alterar Nó de Rede: Form .............................. 77 Figura 47 - Inventário - Nós de Rede - Alterar Nó de rede: alerta que nó de rede foi alterado com sucesso ............................................................................................... 78 Figura 48 - Inventário - Nós de Rede - Excluir Nó de Rede ...................................... 79
Figura 49 - Inventário - Nós de rede - Excluir Nó de rede: alerta que nenhum nó de rede foi selecionado p/ ser excluído .......................................................................... 80 Figura 50 - Inventário - Nós de Rede - Excluir Nó de Rede: alerta que nó de rede foi excluído com sucesso ............................................................................................... 81
Figura 51 - Monitoramento ........................................................................................ 82 Figura 52 - Monitoramento: botão Monitoramento .................................................... 83 Figura 53 - Monitoramento: botão Últimas Ocorrências ............................................ 84
Figura 54 - Monitoramento: botão Grupos ................................................................ 85 Figura 55 - Monitoramento - Monitoramento ............................................................. 86
Figura 56 - Monitoramento - Monitoramento: botão Monitorar Grupo ....................... 87 Figura 57 - Monitoramento - Monitoramento: botão Monitorar Estação .................... 88
Figura 58 - Monitoramento - Monitoramento: botão Monitorar Nó de Rede .............. 89 Figura 59 - Monitoramento - Monitoramento: botão Monitorar Dispositivo ................ 90 Figura 60 - Monitoramento - Monitoramento - Monitoramento por Grupo ................. 91
Figura 61 - Monitoramento - Monitoramento - Monitorar Grupo ................................ 92 Figura 62 - Monitoramento - Monitoramento - Monitoramento por Estação .............. 93
Figura 63 - Monitoramento - Monitoramento - Monitorar Estação: informa que nenhuma estação foi selecionada ............................................................................. 94
Figura 64 - Monitoramento - Monitoramento - Monitorar Estação ............................. 95 Figura 65 - Monitoramento - Monitoramento - Monitoramento por Nó de rede ......... 96 Figura 66 - Monitoramento - Monitoramento - Monitorar Nó de Rede: informa que nenhum nó de rede foi selecionado .......................................................................... 97 Figura 67 - Monitoramento - Monitoramento - Monitorar Nó de Rede ....................... 98
Figura 68 - Monitoramento - Monitoramento - Monitoramento por Dispositivo .......... 99 Figura 69 - Monitoramento - Monitoramento - Monitorar Dispositivo: informa que nenhum dispositivo foi selecionado ......................................................................... 100 Figura 70 - Monitoramento - Monitoramento - Monitorar Dispositivo ....................... 101 Figura 71 - Monitoramento - Últimas Ocorrências ................................................... 102 Figura 72 - Monitoramento - Grupos ....................................................................... 103 Figura 73 - Monitoramento - Grupos: botão Cadastrar Grupo ................................. 104
Figura 74 - Monitoramento - Grupos: botão Alterar Grupo ...................................... 105 Figura 75 - Monitoramento - Grupos: botão excluir Grupo ...................................... 106 Figura 76 - Monitoramento - Grupos - Cadastrar Grupo ......................................... 107 Figura 77 - Monitoramento - Grupos - Cadastrar Grupo: alerta ao usuário p/ informar nome do Grupo ....................................................................................................... 108
Figura 78 - Monitoramento - Grupos - Cadastrar Grupo: alerta que grupo foi cadastrado com sucesso ......................................................................................... 109
Figura 79 - Monitoramento – Grupos – Alterar Grupo ............................................. 110
Figura 80 - Monitoramento - Grupos - Alterar Grupo: informa que nenhum grupo foi selecionado p/ ser alterado ..................................................................................... 111 Figura 81 - Monitoramento - Grupos - Alterar Grupo: Form .................................... 112 Figura 82 - Monitoramento - Grupos - Alterar Grupo: alerta que grupo foi alterado com sucesso ........................................................................................................... 113
Figura 83 - Monitoramento - Grupos - Excluir Grupo .............................................. 114 Figura 84 - Monitoramento - Grupos - Excluir Grupo: alerta que grrupo foi excluído com sucesso ........................................................................................................... 115 Figura 85 - Administração ....................................................................................... 116 Figura 86 - Administração: botão Cadastrar usuário ............................................... 117
Figura 87 - Administração: botão Alterar Usuário .................................................... 118 Figura 88 - Administração: botão Excluir Usuário ................................................... 119
Figura 89 - Administração - Cadastrar Usuário: Form ............................................. 120 Figura 90 - Administração - Cadastrar Usuário: alerta p/ usuário informar o nome do usuário a ser cadastrado ......................................................................................... 121 Figura 91 - Administração - Cadastrar Usuário: alerta p/ usuário informar o perfil do usuário a ser cadastrado ......................................................................................... 122 Figura 92 - Administração - Cadastrar Usuário: alerta p/ usuário informar o login do usuário a ser cadastrado ......................................................................................... 123
Figura 93 - Administração - Cadastrar Usuário: alerta p/ usuário informar a senha do usuário a ser cadastrado ......................................................................................... 124
Figura 94 - Administração - Cadastrar Usuário: alerta que usuário foi cadastrado com sucesso ................................................................................................................... 125
Figura 95 - Administração - Alterar Usuário ............................................................ 126 Figura 96 - Administração - Alterar Usuário: Form .................................................. 127 Figura 97 - Administração - Alterar Usuário: alerta que usuário foi alterado com sucesso ................................................................................................................... 128 Figura 98 - Administração - Excluir Usuário ............................................................ 129
Figura 99 - Administração - Excluir Usuário: alerta que usuário foi excluído com sucesso ................................................................................................................... 130
Figura 100 - Administração - Meus Dados: Form .................................................... 131 Figura 101 - Relatório .............................................................................................. 132 Figura 102 - Relatório: botão Relatório de Ocorrências .......................................... 133
Figura 103 - Relatório: botão Relatório de Usuário ................................................. 134 Figura 104 - Relatório: botão Relatório de Ativo...................................................... 135
Figura 105 - Relatório - Relatório de Ocorrências .................................................. 136 Figura 106 - Relatório - Relatório de Ocorrências - Ocorrências por Estação........ 137
Figura 107 - Relatório - Relatório de Ocorrências - Ocorrências por Nó de Rede . 138 Figura 108 - Relatório - Relatório de Ocorrências - Ocorrências por Dispositivo ... 139 Figura 109 - Relatório - Relatório de Usuário ......................................................... 140 Figura 110 - Relatório - Relatório de Usuário - Acessos por Data .......................... 141 Figura 111 - Relatório - Relatório de Usuário - Acessos por Usuário ..................... 142
Figura 112 - Relatório - Relatório de Usuário - Ações por Data ............................. 143 Figura 113 - Relatório - Relatório de Usuário - Ações por Usuário ........................ 144 Figura 114 - Relatório - Relatório de Ativo ............................................................. 145
SUMÁRIO
1 INTRODUÇÃO ................................................................................................... 14
2 JUSTIFICATIVA ................................................................................................ 15
3 OBJETIVOS ....................................................................................................... 16
3.1 Objetivo Geral ................................................................................................. 16
3.2 Objetivos Específicos ..................................................................................... 16
4 REFERENCIAL TEÓRICO ................................................................................ 17
5 METODOLOGIA ................................................................................................ 19
6 CARACTERIZAÇÃO DA ORGANIZAÇÃO EM ESTUDO ................................. 20
7 TECNOLOGIA ................................................................................................... 21
8 LEVANTAMENTO DE REQUISITOS ................................................................ 22
8.1 REQUISITOS FUNCIONAIS .......................................................................... 22
8.2 REQUISITOS NÃO FUNCIONAIS .................................................................. 23
9 DIAGRAMA DE CASO DE USO ....................................................................... 24
10 DIAGRAMA DE CLASSE .............................................................................. 25
10.1 DESCRIÇÃO DO DIAGRAMA DE CLASSE ................................................... 26
11 DIAGRAMA DE SEQUÊNCIA ........................................................................ 27
12 DIAGRAMA DE ATIVIDADES ....................................................................... 30
13 DIAGRAMA DE ENTIDADE E RELACIONAMENTO .................................... 31
14 TELAS ............................................................................................................ 32
15 CÓDIGO FONTE .......................................................................................... 146
15.1 COMANDOS SQL ........................................................................................ 146
15.1.1 Criação das Tabelas ................................................................................. 146
15.1.2 Criação das Stored Procedures (Procedimentos Armazenados) .............. 149
15.1.2.1 Procedimentos “inserir” ......................................................................... 149
15.1.2.2 Procedimentos “excluir” ......................................................................... 153
15.1.2.3 Procedimentos “alterar” ......................................................................... 154
15.1.2.4 Procedimentos “pesquisar” .................................................................... 158
15.1.3 Inserções .................................................................................................. 170
15.2 CÓDIGO HTML, CSS E PHP ....................................................................... 170
15.2.1 CRUD ........................................................................................................ 170
15.2.1.1 Arquivo conexao.class.php .................................................................... 170
15.2.1.2 Página cadastrar.php ............................................................................ 171
15.2.1.3 Arquivo inserir.class.php ....................................................................... 176
15.2.1.4 Página alterar.php ................................................................................. 186
15.2.1.5 Arquivo alterar.class.php ....................................................................... 192
15.2.1.6 Página excluir.php ................................................................................. 204
15.2.1.7 Arquivo excluir.class.php ....................................................................... 209
15.2.1.8 Arquivo pesquisar.class.php .................................................................. 214
15.2.2 CÓDIGO CSS (comum.css) ...................................................................... 253
15.2.3 PÁGINA INDEX.HTML .............................................................................. 259
15.2.4 PÁGINA LOGIN.PHP ................................................................................ 261
15.2.5 PÁGINA HOME.PHP ................................................................................ 264
15.2.6 PÁGINA LOGOUT.PHP ............................................................................ 268
15.2.7 INVENTÁRIO ............................................................................................ 269
15.2.7.1 Página index.php ................................................................................... 269
15.2.7.2 Página dispositivos.php ......................................................................... 275
15.2.7.3 Página cadastrardispositivo.php ............................................................ 283
15.2.7.4 Página alterardispositivo.php ................................................................ 290
15.2.7.5 Página verdispositivo.php ...................................................................... 297
15.2.7.6 Página excluirdispositivo.php ................................................................ 307
15.2.7.7 Página noderede.php ............................................................................ 314
15.2.7.8 Página alterarnoderede.php .................................................................. 322
15.2.7.9 Página vernoderede.php ....................................................................... 330
15.2.7.10 Página excluirnoderede.php .............................................................. 341
15.2.7.11 Página cadastrarnoderede.php .......................................................... 348
15.2.7.12 Página estacoes.php ......................................................................... 357
15.2.7.13 Página cadastrarestacao.php ............................................................ 366
15.2.7.14 Página alterarestacao.php ................................................................. 375
15.2.7.15 Página verestacao.php ...................................................................... 382
15.2.7.16 Página excluirestacao.php ................................................................. 393
15.2.8 ADMINISTRAÇÃO .................................................................................... 401
15.2.8.1 Página index.php ................................................................................... 401
15.2.8.2 Página cadastrarusuario.php ................................................................. 408
15.2.8.3 Página alterarusuario.php ..................................................................... 417
15.2.8.4 Página verusuario.php ........................................................................... 424
15.2.8.5 Página excluirusuario.php ..................................................................... 432
15.2.8.6 Página meus_dados.php ....................................................................... 440
15.2.9 MONITORAMENTO .................................................................................. 450
15.2.9.1 Arquivo pingo.class.php ........................................................................ 450
15.2.9.2 Página index.php ................................................................................... 454
15.2.9.3 Página monitoramento.php ................................................................... 459
15.2.9.4 Página monitoramento_grupo.php ........................................................ 465
15.2.9.5 Página monitorar_grupo.php ................................................................. 474
15.2.9.6 Página monitoramento_estacao.php ..................................................... 491
15.2.9.7 Página monitorar_estacao.php .............................................................. 499
15.2.9.8 Página monitoramento_noderede.php .................................................. 509
15.2.9.9 Página monitorar_noderede.php ........................................................... 517
15.2.9.10 Página monitoramento_dispositivo.php ............................................. 527
15.2.9.11 Página monitorar_dispositivo.php ...................................................... 535
15.2.9.12 Página grupos.php ............................................................................. 545
15.2.9.13 Página cadastrargrupo.php ................................................................ 555
15.2.9.14 Página alterargrupo.php .................................................................... 567
15.2.9.15 Página vergrupo.php .......................................................................... 577
15.2.9.16 Página excluirgrupo.php .................................................................... 591
15.2.9.17 Página ultimas_ocorrencias.php ........................................................ 601
15.2.10 RELATÓRIO .......................................................................................... 610
15.2.10.1 Página index.php ............................................................................... 610
15.2.10.2 Página relat_ativo.php ....................................................................... 615
15.2.10.3 Página relat_usuario.php ................................................................... 625
15.2.10.4 Página relat_ocorrencias.php ............................................................ 635
15.2.10.5 Página gerar_relatorio.php ................................................................ 640
16 CRONOGRAMA ........................................................................................... 657
17 CONCLUSÃO .............................................................................................. 658
REFERÊNCIAS ....................................................................................................... 659
14
1 INTRODUÇÃO
O monitoramento de ativos de redes (roteador, switch, gateway,
servidor, etc.) é imprescindível numa infraestrutura de rede. O monitoramento almeja
detectar problemas de conectividade entre os dispositivos interligados, bem como
comunicar os responsáveis pela rede acerca de inconstâncias encontradas na
infraestrutura da rede.
No mercado há várias ferramentas de monitoramento de redes,
como Zabbix, Nagios, The Dude, PRTG, Zennos, Cacti, WhatsUp Gold, Open-AudIT,
Observium e outras. O monitoramento traz mais controle e agilidade na tomada de
decisão sobre a estrutura de rede. Ter uma infraestrutura bem sólida e monitorada é
essencial, pois muitos serviços dependem das redes de computadores.
Andrew S. Tanenbaum e Kurose e Ross, três mestres na área de
Redes de Computadores, influenciaram na conceituação e entendimento dos
componentes das redes. As disciplinas de Desenvolvimento de Aplicações Web,
Programação Web II, Banco de Dados I e Banco de Dados II também influenciaram
o desenvolvimento do presente trabalho. O campo de estágio também direcionou a
construção da aplicação, pois a empresa onde o sistema foi desenvolvido é pioneira
na cidade em tecnologia e mesmo sendo pequena, ela possui uma estrutura bem
avançada, com profissionais da área de informática.
O Trabalho de Conclusão de Curso está disposto da seguinte forma:
no item 2 é apresentada a justificativa para o presente trabalho; no item 3 consta os
objetivos geral e específicos. Já no item 4 o referencial teórico, onde é apresentado
um arcabouço de conhecimento que embasaram o trabalho. O item 5 consta a
metodologia adotada para o desenvolvimento do trabalho. No item 6 está
caracterizada a síntese da empresa-escola onde o estágio foi desenvolvido. Já no
item 7 é apresentado os insumos tecnológicos usados para o desenvolvimento da
aplicação. O item 8 está listado os requisitos encontrados, bem como uma breve
descrição do sistema existente. Os itens 9, 10, 11, 12 e 13 apresentam os diagramas
de caso de uso, de classe, de sequência, de atividades e entidade e relacionamento,
respectivamente. Já no item 14 são exibidos ‘screenshots’ das interfaces gráficas da
aplicação desenvolvida e no item 15 é apresentado o código fonte da aplicação. No
item 16 é exibido o cronograma usado para todo o projeto de desenvolvimento do
sistema. Por fim, no item 17 é apresentada a conclusão do TCC.
15
2 JUSTIFICATIVA
Segundo Kurose e Ross (2006):
Uma rede consiste em muitas peças complexas de hardware e software que interagem umas com as outras – desde os enlaces, comutadores, roteadores, hospedeiros e outros dispositivos, que são os componentes físicos da rede, até os muitos protocolos (tanto em hardware quanto em software) que controlam e coordenam esses componentes. [...] O administrador de rede, cuja tarefa é mantê-la “viva e atuante”, deve estar habilitado a reagir a esses contratempos (e, melhor ainda, evita-los). [...] evidentemente necessita de ferramentas que o auxiliem a monitorar, administrar e controlar a rede. (grifo meu) (KUROSE e ROSS, 2006, p.571).
Logo é necessário existir mecanismos de gerenciamento para o
bem-estar duma rede de computadores. Nishitani (2010, p.80) ratifica tal posição ao
afirmar que “de certa forma, todos os dispositivos de rede exigem algum nível de
gerenciamento”.
Como vantagens pela utilização de software de gerenciamento de
redes, Kurose e Ross (2006, p.572-573) diz ser possível detectar “falhas em uma
placa de interface de hospedeiro ou de um roteador [...] monitoração de tráfego [...]
detecção de mudanças rápidas nas tabelas de roteamento [...] detecção de
intrusos”.
A empresa em estudo dispõe de ferramenta para gerenciamento da
rede (“Myauth”), entretanto tal ferramenta é muito generalista, não abrangendo o
gerenciamento de falhas, área que a ferramenta a ser desenvolvida enfocará.
Atualmente, a empresa só descobre falhas na rede, as chamadas “quedas” de
internet, quando o próprio administrador da rede percebe ao utilizá-la ou quando os
clientes lhe reclamam.
Por outro lado, o estagiário percebeu que a empresa em estudo não
necessita de soluções em diversas áreas, pois se trata duma microempresa com
abrangência limitada e escopo bem definido (acesso à internet). Porém, o estagiário
reconhece que a inexistência de aplicação para o gerenciamento de falhas dos
dispositivos de rede é um erro que afeta a qualidade do serviço. A aplicação
desenvolvida terá grande importância para a empresa em estudo. Igualmente, o
projeto de desenvolvimento desta aplicação proporcionará aperfeiçoamento teórico-
prática ao estagiário, pois abrangerá programação web, conhecimentos de redes de
computadores, orientação a objetos e etc.
16
3 OBJETIVOS
3.1 OBJETIVO GERAL
Desenvolver uma ferramenta simples, barata e de fácil utilização,
para monitoramento de ativos em pequenas redes.
3.2 OBJETIVOS ESPECÍFICOS
I. Agregar valor aos negócios da empresa parceira;
II. Criar uma alternativa em contraponto ao complexo protocolo de
gerenciamento SNMP;
III. Utilizar a linguagem de programação PHP, com a aplicação dos
conceitos de orientação a objetos.
17
4 REFERENCIAL TEÓRICO
As redes de computadores estão muito presentes no cotidiano da
sociedade hodierna. Muitos serviços a utilizam como suporte, eliminando barreiras,
encurtando distâncias e incluindo mais e mais pessoas que antes eram excluídas.
Tanenbaum (p.2, 2003) simplesmente define redes de computadores como “um
conjunto de computadores autônomos interconectados por uma única tecnologia. [...]
Existem redes em muitos tamanhos, modelos e formas [...]”. Ainda segundo o autor,
as redes locais, como a vivenciada no estágio e modelo usado para o
desenvolvimento da aplicação, “são redes privadas contidas em um único edifício ou
campus universitário com até alguns quilômetros de extensão. [...] permitindo o
compartilhamento de recursos”.
No item 2 (Justificativa) foi abordado sobre a necessidade do
gerenciamento e monitoramento de redes, fazendo-se agora imperativo defini-lo
como o faz Kurose e Ross (2006) ao citar Saydam (1996) afirmando que o:
Gerenciamento de rede inclui o oferecimento, a integração e a coordenação dos elementos de hardware, software e humanos, para monitorar, testar, consultar, configurar analisar, avaliar e controlar os recursos da rede, e de elementos, para satisfazer às exigências operacionais, de desempenho e de qualidade de serviço em tempo real a um custo razoável.
Na elaboração da aplicação não se pretendeu abarcar toda a
extensão do gerenciamento de redes, tendo em vista o locus para onde o sistema foi
idealizado, bem como o aumento da complexidade ao estender e ampliar funções
que seriam desnecessárias. Tanto Tanenbaum como Kurose e Ross ao abordarem
sobre o gerenciamento de Redes, sempre é apresentado o protocolo SNMP como o
núcleo do gerenciamento, o motor dessa função. O sistema desenvolvido e
apresentado aqui não usa tal protocolo, pois iria justamente contra um dos adjetivos
do objetivo geral da aplicação, a simplicidade, Kurose e Ross (2006) explicam o
porquê:
“Ao contrário do que o nome SNMP (protocolo simples de gerenciamento de rede) possa sugerir, o gerenciamento de rede na internet é muito mais do que apenas um protocolo para transportar dados de gerenciamento entre uma entidade gerenciadora e seus agentes, e o SNMP passou a ser muito mais complexo do que a palavra ‘simples’ (o ‘S’) possa sugerir.”.
O sistema desenvolvido usa dum tripé que sustentam a sua principal
funcionalidade, o monitoramento. O tripé consiste no protocolo ICMP, da utilização
18
de sockets e da linguagem de programação PHP. O protocolo ICMP (Internet Control
Message Protocol), detalhado no RFC 792, informa erros referentes ao endereço IP
(Internet Protocol), sendo bem mais simples que o procotolo SNMP, porém não
dispõe de inúmeras funcionalidades que este possui. É um protocolo de controle,
composto por várias mensagens, sendo as principais, segundo Tanenbaum (2003),
as listadas abaixo:
Tipo de Mensagem Descrição
Destination unreachable Não foi possível entregar o pacote
Time exceeded O campo Time to live chegou a 0
Parameter problem Campo de cabeçalho inválido
Source Quench Pacote regulador
Redirect Ensina geografia a um roteador
Echo Pergunta a uma máquina se ela está ativa
Echo reply Sim, estou ativa
Timestamp request Igual a Echo, mas com timbre de hora
Timestamp reply Igual a Echo reply, mas com timbre de hora
A aplicação utiliza as mensagens “echo” e “echo reply” para
monitorar os ativos. Um dos grandes problemas aliados ao protocolo ICMP é o uso
deste como arma para ocasionar o ataque de DoS (Denial of Service). Kurose e
Ross (2006) explicam melhor:
Os atacantes, sabendo a faixa de endereços IP da sua rede, podem enviar facilmente datagramas IP para endereços da sua faixa. Tais datagramas são capazes de fazer todos os tipos de coisas desonestas [...] inundar servidores com milhares de pacotes ICMP [...] Como Administrador de rede, você pode, primeiro, tentar instalar um firewall entre sua rede e a Internet. [...] Um firewall pode estar configurado, por exemplo, para bloquear todos os pacotes de requisição de eco ICMP [...].
Assim, a aplicação para evitar a sobrecarga dos ativos monitorados,
somente enviar pacotes ICMP (em intervalos de 20 (vinte) segundos) quando
solicitados pelo usuário do sistema, acessando a página web específica para tal.
19
5 METODOLOGIA
Para o desenvolvimento do software de gerenciamento dos
ativos de rede foi utilizado o modelo de prototipação de software. O processo de
desenvolvimento compreendeu as fases de levantamento e análise de requisitos,
projeto, construção e testes, tendo como pano de fundo o modelo de prototipação.
A fase de levantamento e análise de requisitos consistiu em definir
os objetivos gerais do software, através de entrevistas com a empresa em estudo.
A fase de projeto buscou representar, usando a modelagem
orientada a objetos – UML, os aspectos da aplicação. A construção, com o uso do
software “Astah”, dos diagramas de classe, caso de uso, atividades e entidade-
relacionamento foi o grande foco desta fase.
A fase de construção subentende a construção do protótipo, visando
à avaliação do cliente acerca dos requisitos antes definidos, bem como compreende
a construção do software definitivo.
A fase de testes almeja refinar os requisitos do software antes
definidos, baseando-se para isso no protótipo desenvolvido ou no sistema definitivo.
Por utilizar o modelo de prototipação de software, houve constante
contato com o supervisor de campo, bem como os demais envolvidos, a fim de
apresentar os protótipos construídos.
20
6 CARACTERIZAÇÃO DA ORGANIZAÇÃO EM ESTUDO
A JM NET Banda Larga (J. M. Feitosa Informática – ME),
microempresa privada utilizada como laboratório para o desenvolvimento do projeto,
é pioneira na cidade de Piaçabuçu. Mesmo sendo pioneira e com ênfase em
tecnologia, não deixa de ser um negócio de família e amigos.
A empresa foi a primeira a trazer a internet banda larga para a
cidade e isso a transformou em vários aspectos, logo se percebe a importância da
empresa para a localidade. A empresa surgiu em 2006, com uma pequena estrutura,
que ainda se resume numa sala com o servidor de acesso à internet e os
equipamentos para distribuição da conexão (antenas e nós de rede). Atualmente a
empresa oferece como serviços o acesso à internet e a manutenção em
computadores.
A empresa tem como endereço o domicílio do proprietário, Jobson
Matos Feitosa, graduado com licenciatura em Informática, residente à Rua Santo
Antônio, nº 20, isso por ser uma microempresa com uma estrutura muito básica. Há,
porém, a sala, nas dependências da Prefeitura Municipal, onde se localiza o servidor
conectado à antena fixada na torre também localizada nas dependências do órgão
municipal. O contato à empresa pode ser feito por telefone (082 9188-3271) e
através de site (http://www.jmnetbandalarga.com).
A empresa vem em crescente expansão e atualmente oferece
acesso à internet em três cidades vizinhas na região do baixo São Francisco em
Alagoas: Piaçabuçu, Penedo e Feliz Deserto, sendo que em Piaçabuçu ainda
abrange seus povoados; conta com um sócio e três funcionários, dois destes
responsáveis pelo pronto atendimento nos problemas decorrentes da conexão à
internet, usando um automóvel (Fiat Uno) para prestar o pronto atendimento e um
funcionário responsável pelo departamento financeiro (pagamento, atrasos, boletos,
cadastro de clientes, etc.). Há uma frequente busca pela atualização tecnológica dos
ativos da empresa (roteadores, servidor, link de conexão, softwares de rede, etc.).
21
7 TECNOLOGIA
Para o desenvolvimento da aplicação serão usadas poucas
ferramentas. Optou-se, sempre que possível, usar ferramentas livres ou de código
aberto. Tal decisão reduz os custos do projeto e incentiva a liberdade econômica,
tecnológica e de expressão.
Na elaboração da modelagem do Banco de Dados, especificamente
o diagrama entidade-relacionamento, utilizou-se a ferramenta “BRModelo”, tal
ferramenta foi desenvolvida por Carlos Henrique Cândido, sob a orientação do Prof.
Dr. Ronaldo dos Santos Mello (UFSC), para fins de ensino da modelagem em banco
de dados1.
Como o projeto utiliza a orientação a objetos, fez-se necessário
utilizar um software para modelagem UML, usando o Astah2, antes chamado de
“JUDE”, sendo suficiente para o desenvolvimento do projeto sua versão gratuita,
chamada “Community”.
O projeto usará a linguagem de programação PHP, logo se optou
pela instalação da compilação de softwares livres XAMPP3, mantido pela
organização “Apache Friends”, que contém o servidor Apache, servidor PHP, o
administrador de banco de dados PHPMyAdmin e o banco de dados MySQL. O
XAMPP facilita a difícil tarefa de instalar o servidor Apache e seus componentes
(como o MySQL e PhpMyAdmin). O XAMPP é um software gratuito.
Por fim e não menos importante, para a melhor a elaboração dos
códigos usou-se do programa Notepad++, na versão 6.5, desenvolvido pelo
Notepad++ Team, distribuído sob a licença GNU General Public License4.
1 Disponível em: http://sis4.com/brModelo/Default.aspx
2 Disponível em: http://astah.net/
3 Disponível em: http://www.apachefriends.org/pt_br/xampp.html
4 Disponível em http://notepad-plus-plus.org
22
8 LEVANTAMENTO DE REQUISITOS
A empresa em estudo usa uma software terceirizado para
gerenciamento de clientes chamado “MyAuth” desenvolvido pela empresa TMSoft. O
“MyAuth” possui várias ferramentas, como o controle financeiro dos usuários (ex.:
geração de boletos), controle de acesso, controle da taxa de tráfego de acesso,
controle de banda de conexão e possui um amplo suporte oferecido pela empresa
desenvolvedora. Entretanto, o software acima descrito não apresenta nenhuma
opção para gerenciamento dos ativos da rede quanto a falhas. O proprietário usa
para tal um aplicativo, pago, para plataforma “Android” instalado em celular
(smartphone) de uso pessoal.
O sistema proposto busca realizar o gerenciamento e monitoramento
dos ativos da rede local. O gerenciamento consiste em realizar um inventário dos
ativos da empresa. Basicamente consiste em quatro módulos: Administração,
responsável por controlar os usuários que utilizam o sistema; Inventário, área onde
são controlados os ativos, fazendo-se a inserção, alteração, exclusão e listagem dos
mesmos; Monitoramento, onde está a principal função do sistema, podendo realizar
o monitoramento por ativos individualmente ou monitorar por ativos agrupados; e
Relatório, onde são listados os dados, como o registro das ocorrências, os acessos
por parte dos usuários ao sistema e mais informações.
Da fase de levantamento de requisitos, realizada através de
entrevistas com os membros da empresa-escola e da presença na rotina das
atividades dos funcionários. A fase de entrevistas foi importante pra entender a visão
dos usuários do sistema sobre o que ele necessitava fazer.
8.1 REQUISITOS FUNCIONAIS
O software deve manter um histórico das falhas detectadas;
Deve ser possível identificar quem inseriu determinado ativo
no sistema;
O software deve registrar as ações, quando e quem as fez;
O sistema deve verificar os dados inseridos quando do
cadastramento e das alterações, requerendo os dados
obrigatórios, como Nome, Local, IP e Status quando ativo e
23
Nome, Perfil, Login e Senha quando um usuário;
O sistema não pode permitir que um usuário com perfil
diferente de administrador realize operações de inserção,
alteração ou exclusão de ativos ou de outros usuários;
8.2 REQUISITOS NÃO FUNCIONAIS
O usuário deve ser capaz de acessar o software a partir de
qualquer dispositivo, desde computadores até smartphones,
conectado à internet;
A aplicação deve consumir pouca largura de banda;
O envio dos pacotes responsáveis pelo monitoramento não
deve obstruir a rede da empresa; e
O servidor não pode ficar exposto, em virtude da aplicação, a
ataques de invasão ou de negação de serviço;
26
10.1 DESCRIÇÃO DO DIAGRAMA DE CLASSE
O diagrama de classes elaborado apresenta as classes que compõem as ações
junto ao banco de Dados, são as classes Select, Update, Delete, Insert e Conexao, bem como as
classes que representam os ativos, onde se tem a class Ativo que é uma generalização das
classes Dispositivo, Noderede e Estacao e, por fim, tem-se a classe Usuario e a classe Grupo.
Tendo em vista o ambiente em que o sistema Pingo PHP foi desenvolvido, a
linguagem de programação PHP trabalha com páginas web, com variáves superglobais que
perduram seus valores entre as idas e vindas entre uma página e outra. Logo, quando da
implementação no código do diagrama de classes, optou-se por não se utilizar das classes
Usuario, Ativo, Dispositivo, Estacao, Noderede e Grupo. Explico. Imagine uma página de cadastro
de Estacao, ao preencher todos os campos necessários e clicar no botão “cadastrar” seria criada
uma instância da classe Estacao e os valores que foram inseridos neste objeto seriam
repassados para o Banco de Dados e todas as vezes que essas informações fossem
recuperadas necessário seria criar uma nova instância da classe Estacao para armazenar esses
valores. Com o uso das variáveis superglobais do PHP não se faz necessário a alocação de
memória necessária para a criação de um objeto, sem levar em conta que eliminamos muitas
linhas de código por não utilizar essas classes.
A classe Pingo é responsável por efetuar o monitoramento dos ativos. É uam
classe somente com métodos e contém a principal função do sistema Pingo PHP: a função
enviarSocket. O código fonte referente à classe pingo é uma adaptação do código elaborado por
Philip Birk-Jensen, disponível em < http://birk-jensen.dk/2010/09/php-ping/ >.
As classes Select, Insert, Update, Delete e Conexao são as classes que dão
suporte e funcionalidade ao Pingo PHP, provendo e organizando os dados da aplicação. A classe
Conexao possui uma relação de composição com as classes Select, Insert, Update e Delete, pois
aquela só existe enquanto estas existirem. Estas últimas quatro classes basicamente consistem
por atributos que armazenam as chamadas para as Stored Procedures no banco de dados,
enquanto seus métodos são responsáveis por passar os valores para dentro das procedures,
prepararem suas chamadas e executá-las no banco de dados.
62
Figura 31 - Inventário - Estações - Excluir Estação: alerta informando que nenhuma estação foi selecionada para exclusão
69
Figura 38 - Inventário - Nós de Rede - Cadastrar Nó de rede: alerta p/ usuário informar o nome do nó de rede
70
Figura 39 - Inventário - Nós de Rede - Cadastrar Nó de Rede: alerta p/ usuário informar o IP do nó de rede
71
Figura 40 - Inventário - Nós de Rede - Cadastrar Nó de rede: alerta p/ usuário informar o local do nó de rede
72
Figura 41 - Inventário - Nós de Rede - Cadastrar Nó de rede: alerta p/ usuário informar o status do nó de rede
73
Figura 42 - Inventário - Nós de rede - Cadastrar Nó de Rede: informa que nó de rede foi cadastrado com sucesso
76
Figura 45 - Inventário - Nós de Rede - Alterar Nós de Rede: informa que nenhum nó de rede foi selecionado para ser alterado
78
Figura 47 - Inventário - Nós de Rede - Alterar Nó de rede: alerta que nó de rede foi alterado com sucesso
80
Figura 49 - Inventário - Nós de rede - Excluir Nó de rede: alerta que nenhum nó de rede foi selecionado p/ ser excluído
81
Figura 50 - Inventário - Nós de Rede - Excluir Nó de Rede: alerta que nó de rede foi excluído com sucesso
94
Figura 63 - Monitoramento - Monitoramento - Monitorar Estação: informa que nenhuma estação
foi selecionada
97
Figura 66 - Monitoramento - Monitoramento - Monitorar Nó de Rede: informa que nenhum nó
de rede foi selecionado
100
Figura 69 - Monitoramento - Monitoramento - Monitorar Dispositivo: informa que nenhum
dispositivo foi selecionado
108
Figura 77 - Monitoramento - Grupos - Cadastrar Grupo: alerta ao usuário p/ informar nome do Grupo
109
Figura 78 - Monitoramento - Grupos - Cadastrar Grupo: alerta que grupo foi cadastrado com sucesso
111
Figura 80 - Monitoramento - Grupos - Alterar Grupo: informa que nenhum grupo foi selecionado p/ ser alterado
121
Figura 90 - Administração - Cadastrar Usuário: alerta p/ usuário informar o nome do usuário a ser cadastrado
122
Figura 91 - Administração - Cadastrar Usuário: alerta p/ usuário informar o perfil do usuário a ser cadastrado
123
Figura 92 - Administração - Cadastrar Usuário: alerta p/ usuário informar o login do usuário a ser cadastrado
124
Figura 93 - Administração - Cadastrar Usuário: alerta p/ usuário informar a senha do usuário a ser cadastrado
146
15 CÓDIGO FONTE
15.1 COMANDOS SQL
15.1.1 Criação das Tabelas
CREATE TABLE usuario (
idUsuario int(4) PRIMARY KEY NOT NULL AUTO_INCREMENT,
Email varchar(50) NOT NULL,
Nome varchar(50) NOT NULL,
Login varchar(15) NOT NULL,
Senha varchar(15) NOT NULL,
Perfil varchar(30) NOT NULL,
Telefone varchar(15) NOT NULL
)
ENGINE = InnoDB;
CREATE TABLE log (
id int(4) PRIMARY KEY NOT NULL AUTO_INCREMENT,
Usuario int(4) NOT NULL DEFAULT 1 ,
Evento varchar(30) NOT NULL,
DataHora varchar(20) NOT NULL,
INDEX (Usuario),
FOREIGN KEY (Usuario) REFERENCES usuario (idUsuario) ON UPDATE
CASCADE ON DELETE CASCADE
)
ENGINE = InnoDB;
CREATE TABLE grupo (
id int(4) PRIMARY KEY NOT NULL AUTO_INCREMENT,
Nome varchar(30) NOT NULL,
Usuario int(4) NULL DEFAULT 1,
INDEX (Usuario),
FOREIGN KEY (Usuario) REFERENCES usuario (idUsuario) ON UPDATE
147
CASCADE ON DELETE SET NULL
)
ENGINE = InnoDB;
CREATE TABLE estacao (
id int(4) PRIMARY KEY NOT NULL AUTO_INCREMENT,
IP varchar(15) NOT NULL,
Nome varchar(30) NOT NULL,
Local varchar(30) NOT NULL,
SO varchar(30) NULL,
HD varchar(15) NULL,
CPU varchar(15) NULL,
RAM varchar(15) NULL,
Status varchar(15) NULL,
Usuario int(4) NULL DEFAULT 1,
Grupo int(4) NULL DEFAULT 1,
INDEX (Usuario),
INDEX (Grupo),
FOREIGN KEY (Usuario) REFERENCES usuario (idUsuario) ON UPDATE
CASCADE ON DELETE SET NULL,
FOREIGN KEY (Grupo) REFERENCES grupo (id) ON UPDATE CASCADE
ON DELETE SET NULL
)
ENGINE = InnoDB;
CREATE TABLE OcorrenciaEstacao (
id int(4) PRIMARY KEY NOT NULL AUTO_INCREMENT,
Estacao int(4) NOT NULL,
DataHora varchar(20) NOT NULL,
INDEX (Estacao),
FOREIGN KEY(Estacao) REFERENCES estacao (id) ON UPDATE
CASCADE ON DELETE CASCADE
)
ENGINE = InnoDB;
CREATE TABLE norede (
148
id int(4) PRIMARY KEY NOT NULL AUTO_INCREMENT,
IP varchar(15) NOT NULL,
Nome varchar(30) NOT NULL,
Local varchar(30) NOT NULL,
Tipo varchar(30) NULL,
Marca varchar(30) NULL,
Modelo varchar(15) NULL,
Freq varchar(15) NULL,
DBI varchar(15) NULL,
Status varchar(15) NULL,
Usuario int(4) NULL DEFAULT 1,
Grupo int(4) NULL DEFAULT 1,
INDEX (Usuario),
INDEX (Grupo),
FOREIGN KEY (Usuario) REFERENCES usuario (idUsuario) ON UPDATE
CASCADE ON DELETE SET NULL,
FOREIGN KEY (Grupo) REFERENCES grupo (id) ON UPDATE CASCADE
ON DELETE SET NULL
)
ENGINE = InnoDB;
CREATE TABLE OcorrenciaNoRede (
id int(4) PRIMARY KEY NOT NULL AUTO_INCREMENT,
Norede int(4) NOT NULL,
DataHora varchar(20),
INDEX (Norede),
FOREIGN KEY (Norede) REFERENCES norede (id) ON UPDATE CASCADE
ON DELETE CASCADE
)
ENGINE = InnoDB;
CREATE TABLE dispositivo (
id int(4) PRIMARY KEY NOT NULL AUTO_INCREMENT,
IP varchar(15) NOT NULL,
Nome varchar(30) NOT NULL,
Local varchar(30) NOT NULL,
149
Tipo varchar(30) NULL,
Status varchar(15) NULL,
Usuario int(4) NULL DEFAULT 1,
Grupo int(4) NULL DEFAULT 1,
INDEX (Usuario),
INDEX (Grupo),
FOREIGN KEY (Usuario) REFERENCES usuario (idUsuario) ON UPDATE
CASCADE ON DELETE SET NULL,
FOREIGN KEY (Grupo) REFERENCES grupo (id) ON UPDATE CASCADE
ON DELETE SET NULL
)
ENGINE = InnoDB;
CREATE TABLE OcorrenciaDispositivo (
id int(4) PRIMARY KEY NOT NULL AUTO_INCREMENT,
Dispositivo int(4) NOT NULL,
DataHora varchar(20) NOT NULL,
INDEX (Dispositivo),
FOREIGN KEY (Dispositivo) REFERENCES dispositivo (id) ON UPDATE
CASCADE ON DELETE CASCADE
)
ENGINE = InnoDB;
15.1.2 Criação das Stored Procedures (Procedimentos Armazenados)
15.1.2.1 Procedimentos “inserir”
DELIMITER //
CREATE PROCEDURE inserirEstacao(param_ip varchar(15),param_nome
varchar(30),param_local varchar(30),param_so varchar(30),param_hd varchar(15),
param_cpu varchar(15),param_ram varchar(15),param_status varchar(15),
param_usuario int(4))
MODIFIES SQL DATA
BEGIN
150
INSERT INTO estacao (IP,Nome,Local,SO,HD,CPU,RAM,Status,Usuario)
VALUES
(param_ip,param_nome,param_local,param_so,param_hd,param_cpu,param_ram,param_status,
param_usuario);
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE inserirNoderede(param_ip varchar(15),param_nome
varchar(30),param_local varchar(30),param_tipo varchar(30),param_marca varchar(30),
param_modelo varchar(15),param_freq varchar(15),param_dbi
varchar(15),param_status varchar(15), param_usuario int(4))
MODIFIES SQL DATA
BEGIN
INSERT INTO norede
(IP,Nome,Local,Tipo,Marca,Modelo,Freq,DBI,Status,Usuario)
VALUES
(param_ip,param_nome,param_local,param_tipo,param_marca,param_modelo,param_freq,param_db
i,param_status, param_usuario);
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE inserirDispositivo(param_ip varchar(15),param_nome
varchar(30),param_local varchar(30),param_status varchar(15),
param_tipo varchar(30), param_usuario int(4))
MODIFIES SQL DATA
BEGIN
INSERT INTO dispositivo (IP,Nome,Local,Status,Tipo,Usuario)
VALUES
(param_ip,param_nome,param_local,param_status,param_tipo,param_usuario);
151
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE inserirGrupo(param_nome varchar(30),param_usuario
int(4))
MODIFIES SQL DATA
BEGIN
INSERT INTO grupo (Nome,Usuario)
VALUES (param_nome,param_usuario);
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE inserirLog(param_usuario int(4),param_evento
varchar(30),param_datahora varchar(20))
MODIFIES SQL DATA
BEGIN
INSERT INTO log (Usuario,Evento,DataHora)
VALUES (param_usuario,param_evento,param_datahora);
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE inserirOcorrenciaEstacao(param_id
int(4),param_datahora varchar(20))
MODIFIES SQL DATA
BEGIN
152
INSERT INTO ocorrenciaestacao (Estacao,DataHora)
VALUES (param_id,param_datahora);
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE inserirOcorrenciaNoderede(param_id
int(4),param_datahora varchar(20))
MODIFIES SQL DATA
BEGIN
INSERT INTO ocorrencianorede (Norede,DataHora)
VALUES (param_id,param_datahora);
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE inserirOcorrenciaDispositivo(param_id
int(4),param_datahora varchar(20))
MODIFIES SQL DATA
BEGIN
INSERT INTO ocorrenciadispositivo (Dispositivo,DataHora)
VALUES (param_id,param_datahora);
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE inserirUsuario(param_email varchar(50),param_nome
varchar(50),param_login varchar(15),param_senha varchar(15),param_perfil varchar(30),
param_telefone varchar(15))
MODIFIES SQL DATA
BEGIN
INSERT INTO usuario (Email, Nome, Login, Senha, Perfil, Telefone)
VALUES (param_email, param_nome, param_login,
param_senha, param_perfil, param_telefone);
END //
DELIMITER ;
153
15.1.2.2 Procedimentos “excluir”
DELIMITER //
CREATE PROCEDURE excluirUsuario (param_id int(4))
MODIFIES SQL DATA
BEGIN
DELETE FROM usuario WHERE idUsuario = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE excluirEstacao (param_id int(4))
MODIFIES SQL DATA
BEGIN
DELETE FROM estacao WHERE id = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE excluirNoderede (param_id int(4))
MODIFIES SQL DATA
BEGIN
DELETE FROM norede WHERE id = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE excluirDispositivo (param_id int(4))
MODIFIES SQL DATA
BEGIN
DELETE FROM dispositivo WHERE id = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE excluirGrupo (param_id int(4))
MODIFIES SQL DATA
BEGIN
DELETE FROM grupo WHERE id = param_id;
END //
154
DELIMITER ;
15.1.2.3 Procedimentos “alterar”
DELIMITER //
CREATE PROCEDURE alterarEstacao(param_id int(4), param_ip
varchar(15),param_nome varchar(30),param_local varchar(30),param_so varchar(30),param_hd
varchar(15),
param_cpu varchar(15),param_ram varchar(15),param_status varchar(15))
MODIFIES SQL DATA
BEGIN
UPDATE estacao SET IP = param_ip, Nome = param_nome, Local = param_local,
SO = param_so, HD = param_hd, CPU = param_cpu, RAM = param_ram,
Status = param_status WHERE id = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE alterarDispositivo(param_id int(4),param_ip
varchar(15),param_nome varchar(30),param_local varchar(30),param_status varchar(15),
param_tipo varchar(30))
MODIFIES SQL DATA
BEGIN
UPDATE dispositivo SET IP = param_ip, Nome = param_nome, Local =
param_local, Status = param_status, Tipo = param_tipo WHERE id = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE alterarNoderede(param_id int(4),param_ip
varchar(15),param_nome varchar(30),param_local varchar(30),
param_marca varchar(30),param_modelo varchar(15),param_freq
varchar(15),param_dbi varchar(15),param_status varchar(15),param_tipo varchar(30))
MODIFIES SQL DATA
BEGIN
UPDATE norede SET IP = param_ip, Nome = param_nome, Local = param_local,
Marca = param_marca, Modelo = param_modelo,
Freq = param_freq, DBI = param_dbi, Status = param_status, Tipo = param_tipo
WHERE id = param_id;
END //
155
DELIMITER ;
DELIMITER //
CREATE PROCEDURE alterarGrupo(param_nome varchar(30),param_id int(4))
MODIFIES SQL DATA
BEGIN
UPDATE grupo SET Nome = param_nome WHERE id = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE alterarEstacaoGrupo(param_idgrupo
int(4),param_idestacao int(4))
MODIFIES SQL DATA
BEGIN
UPDATE estacao SET Grupo = param_idgrupo WHERE id = param_idestacao;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE alterarNoderedeGrupo(param_idgrupo
int(4),param_idnoderede int(4))
MODIFIES SQL DATA
BEGIN
UPDATE norede SET Grupo = param_idgrupo WHERE id = param_idnoderede;
156
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE alterarDispositivoGrupo(param_idgrupo
int(4),param_iddispositivo int(4))
MODIFIES SQL DATA
BEGIN
UPDATE dispositivo SET Grupo = param_idgrupo WHERE id =
param_iddispositivo;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE alterarEstacaoSemGrupo()
MODIFIES SQL DATA
BEGIN
UPDATE estacao SET Grupo = 1 WHERE Grupo IS NULL;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE alterarNoderedeSemGrupo()
MODIFIES SQL DATA
BEGIN
157
UPDATE norede SET Grupo = 1 WHERE Grupo IS NULL;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE alterarDispositivoSemGrupo()
MODIFIES SQL DATA
BEGIN
UPDATE dispositivo SET Grupo = 1 WHERE Grupo IS NULL;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE alterarUsuario(param_id int(4), param_email
varchar(50),param_nome varchar(50),param_perfil varchar(30), param_telefone varchar(15))
MODIFIES SQL DATA
BEGIN
UPDATE usuario SET Email = param_email, Nome = param_nome, Perfil =
param_perfil, Telefone = param_telefone WHERE idUsuario = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE alterarUsuarioLogado(param_id int(4), param_email
varchar(50),param_nome varchar(50), param_login varchar(15), param_senha varchar(15),
158
param_perfil varchar(30), param_telefone varchar(15))
MODIFIES SQL DATA
BEGIN
UPDATE usuario SET Email = param_email, Nome = param_nome, Login =
param_login, Senha = param_senha, Perfil = param_perfil, Telefone = param_telefone
WHERE idUsuario = param_id;
END //
DELIMITER ;
15.1.2.4 Procedimentos “pesquisar”
DELIMITER //
CREATE PROCEDURE pesquisarUsuarioLogin(param_login varchar(15),
param_senha varchar(14))
READS SQL DATA
BEGIN
SELECT * FROM usuario WHERE Login = param_login AND
Senha = param_senha LIMIT 1;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarUsuarioTodos()
READS SQL DATA
BEGIN
SELECT * FROM usuario;
END //
DELIMITER ;
DELIMITER //
159
CREATE PROCEDURE pesquisarUsuarioTodosExceto(param_id int(4))
READS SQL DATA
BEGIN
SELECT * FROM usuario WHERE idUsuario <> param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarUsuarioID(param_id int(4))
READS SQL DATA
BEGIN
SELECT * FROM usuario WHERE idUsuario = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarEstacaoID(param_id int(4))
READS SQL DATA
BEGIN
SELECT * FROM estacao WHERE id = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarNoderedeID(param_id int(4))
160
READS SQL DATA
BEGIN
SELECT * FROM norede WHERE id = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarDispositivoID(param_id int(4))
READS SQL DATA
BEGIN
SELECT * FROM dispositivo WHERE id = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarEstacaoTodos()
READS SQL DATA
BEGIN
SELECT * FROM estacao;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarNoderedeTodos()
READS SQL DATA
161
BEGIN
SELECT * FROM norede;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarDispositivoTodos()
READS SQL DATA
BEGIN
SELECT * FROM dispositivo;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarEstacaoLimite()
READS SQL DATA
BEGIN
SELECT * FROM estacao LIMIT 3;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarNoderedeLimite()
READS SQL DATA
BEGIN
162
SELECT * FROM norede LIMIT 3;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarDispositivoLimite()
READS SQL DATA
BEGIN
SELECT * FROM dispositivo LIMIT 3;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarGrupoTodos()
READS SQL DATA
BEGIN
SELECT * FROM grupo;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarGrupoUltimo()
READS SQL DATA
BEGIN
SELECT * FROM grupo ORDER BY id DESC LIMIT 1;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarGrupoID(param_id int(4))
READS SQL DATA
BEGIN
163
SELECT * FROM grupo WHERE id = param_id LIMIT 1;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarEstacaoGrupo(param_id int(4))
READS SQL DATA
BEGIN
SELECT id, Nome, IP, Local, Status FROM estacao WHERE Grupo = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarIDEstacaoGrupo(param_id int(4))
READS SQL DATA
BEGIN
SELECT estacao.id FROM estacao INNER JOIN grupo ON Grupo = grupo.id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarNoderedeGrupo(param_id int(4))
READS SQL DATA
BEGIN
SELECT id, Nome, IP, Local, Status FROM norede WHERE Grupo = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarDispositivoGrupo(param_id int(4))
READS SQL DATA
BEGIN
SELECT id, Nome, IP, Local, Status FROM dispositivo WHERE Grupo = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarQuantOcorrenciaEstacao(param_idestacao
int(4),param_datahora varchar(20))
READS SQL DATA
164
BEGIN
SELECT COUNT(id) FROM ocorrenciaestacao WHERE Estacao =
param_idestacao AND DataHora LIKE CONCAT('%',param_datahora,'%');
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarQuantOcorrenciaNoderede(param_idnorede
int(4),param_datahora varchar(20))
READS SQL DATA
BEGIN
SELECT COUNT(id) FROM ocorrencianorede WHERE Norede = param_idnorede
AND DataHora LIKE CONCAT('%',param_datahora,'%');
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE
pesquisarQuantOcorrenciaDispositivo(param_iddispositivo int(4),param_datahora varchar(20))
READS SQL DATA
BEGIN
SELECT COUNT(id) FROM ocorrenciadispositivo WHERE Dispositivo =
param_iddispositivo AND DataHora LIKE CONCAT('%',param_datahora,'%');
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarQuantUsuario()
READS SQL DATA
BEGIN
SELECT COUNT(*) FROM usuario;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarQuantAdministrador()
READS SQL DATA
BEGIN
165
SELECT COUNT(*) FROM usuario WHERE Perfil = "Administrador";
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarQuantOperador()
READS SQL DATA
BEGIN
SELECT COUNT(*) FROM usuario WHERE Perfil = "Operador";
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarAcoesData(param_datahora varchar(20))
READS SQL DATA
BEGIN
SELECT log.DataHora, log.Evento,usuario.Nome FROM log
INNER JOIN usuario ON log.Usuario = usuario.idUsuario WHERE DataHora LIKE
CONCAT('%',param_datahora,'%') ORDER BY DataHora DESC;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarAcoesUsuario(param_id int(4))
READS SQL DATA
BEGIN
SELECT usuario.Nome,log.Evento,log.DataHora FROM log
INNER JOIN usuario ON log.usuario = usuario.idUsuario WHERE log.Usuario =
param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarAcessoUsuario(param_id int(4))
READS SQL DATA
BEGIN
SELECT usuario.Nome,log.Evento,log.DataHora FROM log
INNER JOIN usuario ON log.usuario = usuario.idUsuario WHERE log.Usuario =
param_id AND log.Evento = 'Acessar o Sistema';
END //
166
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarAcessoData(param_datahora varchar(20))
READS SQL DATA
BEGIN
SELECT log.DataHora, log.Evento,usuario.Nome FROM log
INNER JOIN usuario ON log.Usuario = usuario.idUsuario WHERE DataHora LIKE
CONCAT('%',param_datahora,'%') AND log.Evento = 'Acessar o Sistema' ORDER BY DataHora
DESC;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarQuantEstacao()
READS SQL DATA
BEGIN
SELECT COUNT(*) FROM estacao;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarQuantNoderede()
READS SQL DATA
BEGIN
SELECT COUNT(*) FROM norede;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarQuantDispositivo()
READS SQL DATA
BEGIN
SELECT COUNT(*) FROM dispositivo;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarEstacoesUsuario(param_id int(4))
READS SQL DATA
167
BEGIN
SELECT estacao.Nome,estacao.IP,estacao.Local,usuario.Nome FROM estacao
INNER JOIN usuario ON estacao.Usuario = usuario.idUsuario WHERE estacao.Usuario = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarNosderedeUsuario(param_id int(4))
READS SQL DATA
BEGIN
SELECT norede.Nome,norede.IP,norede.Local,usuario.Nome FROM norede
INNER JOIN usuario ON norede.Usuario = usuario.idUsuario WHERE norede.Usuario = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarDispositivosUsuario(param_id int(4))
READS SQL DATA
BEGIN
SELECT dispositivo.Nome,dispositivo.IP,dispositivo.Local,usuario.Nome FROM
dispositivo
INNER JOIN usuario ON dispositivo.Usuario = usuario.idUsuario WHERE
dispositivo.Usuario = param_id;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarUltimasOcorrEstacao()
READS SQL DATA
BEGIN
SELECT
ocorrenciaestacao.Estacao,ocorrenciaestacao.DataHora,estacao.Nome,estacao.IP,estacao.Local
FROM ocorrenciaestacao
INNER JOIN estacao ON ocorrenciaestacao.Estacao = estacao.id ORDER BY
ocorrenciaestacao.DataHora DESC LIMIT 7;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarUltimasOcorrDispositivo()
168
READS SQL DATA
BEGIN
SELECT
ocorrenciadispositivo.Dispositivo,ocorrenciadispositivo.DataHora,dispositivo.Nome,dispositivo.IP,dispo
sitivo.Local FROM ocorrenciadispositivo
INNER JOIN dispositivo ON ocorrenciadispositivo.Dispositivo = Dispositivo.id
ORDER BY ocorrenciadispositivo.DataHora DESC LIMIT 7;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarUltimasOcorrNoderede()
READS SQL DATA
BEGIN
SELECT
ocorrencianorede.Norede,ocorrencianorede.DataHora,norede.Nome,norede.IP,norede.Local FROM
ocorrencianorede
INNER JOIN norede ON ocorrencianorede.Norede = Norede.id ORDER BY
ocorrencianorede.DataHora DESC LIMIT 7;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarOcorrEstacao()
READS SQL DATA
BEGIN
SELECT
ocorrenciaestacao.Estacao,ocorrenciaestacao.DataHora,estacao.Nome,estacao.IP,estacao.Local
FROM ocorrenciaestacao
INNER JOIN estacao ON ocorrenciaestacao.Estacao = estacao.id ORDER BY
ocorrenciaestacao.DataHora DESC;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarOcorrDispositivo()
READS SQL DATA
BEGIN
SELECT
ocorrenciadispositivo.Dispositivo,ocorrenciadispositivo.DataHora,dispositivo.Nome,dispositivo.IP,dispo
169
sitivo.Local FROM ocorrenciadispositivo
INNER JOIN dispositivo ON ocorrenciadispositivo.Dispositivo = Dispositivo.id
ORDER BY ocorrenciadispositivo.DataHora DESC;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarOcorrNoderede()
READS SQL DATA
BEGIN
SELECT
ocorrencianorede.Norede,ocorrencianorede.DataHora,norede.Nome,norede.IP,norede.Local FROM
ocorrencianorede
INNER JOIN norede ON ocorrencianorede.Norede = Norede.id ORDER BY
ocorrencianorede.DataHora DESC;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarUltimoAcesso(param_id int(4))
READS SQL DATA
BEGIN
SELECT log.DataHora FROM log WHERE log.Usuario = param_id AND
log.Evento = 'Acessar o Sistema' ORDER BY log.DataHora DESC LIMIT 1;
END //
DELIMITER ;
DELIMITER //
CREATE PROCEDURE pesquisarTodosLog()
READS SQL DATA
BEGIN
SELECT log.DataHora,log.Evento,usuario.Nome FROM log INNER JOIN usuario
ON log.Usuario = usuario.idUsuario ORDER BY log.DataHora DESC;
END //
DELIMITER ;
170
15.1.3 Inserções
INSERT INTO usuario (Email,Nome,Login,Senha,Perfil,Telefone) VALUES
('[email protected]','ROOT','root','rootroot','Administrador','12345678');
INSERT INTO grupo (Nome,Usuario) VALUES ('Padrão',1);
15.2 CÓDIGO HTML, CSS E PHP
15.2.1 CRUD
15.2.1.1 Arquivo conexao.class.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento de Sistemas -
Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes - 2013
@Classe que implementa, através do recurso de PDO (PHP Data Objects), a
conexão com o BD
*/
class Conexao
{
//public $dsn =
'mysql:host=localhost;port=3306;dbname=pingophp';
public $dsn =
'mysql:host=mysql.qlix.com.br;port=3306;dbname=pingophp';
public $usuario = 'pingophp';
public $senha = 'ellipsis';
public $opcoes =
array(PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES
utf8',PDO::ATTR_PERSISTENT=>true,PDO::ATTR_CASE=>PDO::CASE_LOWER);
}
171
15.2.1.2 Página cadastrar.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento de Sistemas -
Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes - 2013
@O switch irá verificar qual o tipo de formulário (cadastro) está sendo passado.
Definido o tipo de cadastro, cria-se um objeto Insert, chama-se o método adequado
(informando os valores a serem inseridos no BD). Feita o cadastro, é hora de
registrar isso na tabela de logs do sistema, informando o usuário q fez o cadastro
(id), o tipo de cadastro (tipoform) e quando ele fez tal cadastro (date()). Finalmente, é
informando (via 'alert') que o cadsstro foi realizado e é feito um redirecionamento
*/
session_start(); //Pega os valores personalizados do usuário
atual.
switch ($_POST['tipoform'])
{
case "Cadastrar Usuario":
{
require_once("inserir.class.php");
$insert = new Insert();
$insert-
>inserirUsuario($_POST['email'],$_POST['nome'],$_POST['login'],$_POST['senha'],$
_POST['perfil'],$_POST['telefone']);
$insert-
>inserirLog($_SESSION['id'],$_POST['tipoform'],date('d/m/Y H:i'));
echo("<script type='text/javascript'>
alert('Usu\u00e1rio cadastrado com sucesso!');
172
location.href='../administracao';</script>");
break;
}
case "Cadastrar Estacao":
{
require_once("inserir.class.php");
$insert = new Insert();
$insert-
>inserirEstacao($_POST['ip'],$_POST['nome'],$_POST['local'],$_POST['so'],$_POST
['hd'],$_POST['cpu'],$_POST['ram'],$_POST['status'],$_SESSION['id']);
$insert-
>inserirLog($_SESSION['id'],$_POST['tipoform'],date('d/m/Y H:i'));
echo("<script type='text/javascript'>
alert('Esta\u00e7\u00e3o cadastrada com sucesso!');
location.href='../inventario/estacoes.php';</script>");
break;
}
case "Cadastrar No de Rede":
{
require_once("inserir.class.php");
$insert = new Insert();
$insert-
>inserirNodorede($_POST['ip'],$_POST['nome'],$_POST['local'],$_POST['marca'],$_
POST['modelo'],$_POST['frequencia'],$_POST['dbi'],$_POST['status'],$_POST['tipon
173
o'],$_SESSION['id']);
$insert-
>inserirLog($_SESSION['id'],$_POST['tipoform'],date('d/m/Y H:i'));
echo("<script type='text/javascript'> alert('N\u00f3
de Rede cadastrado com sucesso!');
location.href='../inventario/noderede.php';</script>");
break;
}
case "Cadastrar Dispositivo":
{
require_once("inserir.class.php");
$insert = new Insert();
$insert-
>inserirDispositivo($_POST['ip'],$_POST['nome'],$_POST['local'],$_POST['status'],$_
POST['tipodispositivo'],$_SESSION['id']);
$insert-
>inserirLog($_SESSION['id'],$_POST['tipoform'],date('d/m/Y H:i'));
echo("<script type='text/javascript'>
alert('Dispositivo cadastrado com sucesso!');
location.href='../inventario/dispositivos.php';</script>");
break;
}
case "Cadastrar Grupo" :
{
174
if($_POST['nome'] != "")
{
require_once("inserir.class.php");
$insert = new Insert();
$insert-
>inserirGrupo($_POST['nome'],$_SESSION['id']);
$insert-
>inserirLog($_SESSION['id'],$_POST['tipoform'],date('d/m/Y H:i'));
require_once("pesquisar.class.php");
$select = new Select();
$select->pesquisarGrupoUltimo();
//Verifica se o último Grupo Cadastrado é
igual ao grupo informado pelo usuário - Ter certeza que será inserido os ativos no
grupo correto.
if ((string) $select->registro->nome ===
$_POST['nome'])
{
require_once("alterar.class.php");
$update = new Update();
//Alterando o 'id' do grupo nos
dispositivos que foram selecionadas no checkbox
if(isset($_POST['iddispositivo']))
{
for($index = 0; $index <
count($_POST['iddispositivo']); $index++)
175
{
$update-
>alterarDispositivoGrupo($select->registro->id, $_POST['iddispositivo'][$index]);
}
}
//Alterando o 'id' do grupo nas
estações que foram selecionadas no checkbox
if(isset($_POST['idestacao']))
{
for($index = 0; $index <
count($_POST['idestacao']); $index++)
{
$update-
>alterarEstacaoGrupo($select->registro->id, $_POST['idestacao'][$index]);
}
}
//Alterando o 'id' do grupo nos nós de
rede que foram selecionadas no checkbox
if(isset($_POST['idnoderede']))
{
for($index = 0; $index <
count($_POST['idnoderede']); $index++)
{
$update-
>alterarNoderedeGrupo($select->registro->id, $_POST['idnoderede'][$index]);
}
}
echo("<script type='text/javascript'>
alert('Grupo cadastrado com sucesso!');
location.href='../monitoramento/grupos.php';</script>");
}
176
else
{
echo("<script type='text/javascript'>
alert('Grupo n\u00e3o cadastrado!');
location.href='../monitoramento/grupos.php';</script>");
}
}
else
{
echo("<script type='text/javascript'>
alert('Informe o nome do Grupo!');
location.href='../monitoramento/grupos.php';</script>");
}
break;
}
}
15.2.1.3 Arquivo inserir.class.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento de Sistemas -
Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes - 2013
@Classe responsável por inserir registros no BD. Os atributos contém a chamada
específica p/ a Procedure específica. Já os métodos são os responsáveis por
estabelecer a conexão com o BD, criar as PDO (Php Data Object), preparam os
comandos SQL, trocar os valores (bindParam) e executam a chamada p/ as
Procedures p/ inclusão no BD.
*/
class Insert
177
{
public $resposta; //Armazena uma possível resposta - não
vai ser muito usado.
//=======================================ATRIBUTOS
sqlInsert...=============================================
//Os atributos basicamente contêm as chamadas ('CALL')
para a inserção desejada, chamada essa feita para a procedure armazenada no BD.
//A nomenclatura usada nos atributos é sempre
'sqlInsertAlgumaCoisa'.
private $sqlInsertEstacao = "CALL
inserirEstacao(:IP,:Nome,:Local,:SO,:HD,:CPU,:RAM,:Status,:Usuario)";
private $sqlInsertNoderede = "CALL
inserirNoderede(:IP,:Nome,:Local,:Tipo,:Marca,:Modelo,:Freq,:DBI,:Status,:Usuario)";
private $sqlInsertDispositivo = "CALL
inserirDispositivo(:IP,:Nome,:Local,:Status,:Tipo,:Usuario)";
private $sqlInsertGrupo = "CALL
inserirGrupo(:Nome,:Usuario)";
private $sqlInsertLog = "CALL
inserirLog(:Usuario,:Evento,:DataHora)";
private $sqlInsertOcorrenciaEstacao = "CALL
inserirOcorrenciaEstacao(:ID,:DataHora)";
private $sqlInsertOcorrenciaNoderede = "CALL
inserirOcorrenciaNoderede(:ID,:DataHora)";
private $sqlInsertOcorrenciaDispositivo = "CALL
178
inserirOcorrenciaDispositivo(:ID,:DataHora)";
private $sqlInsertUsuario = "CALL
inserirUsuario(:Email,:Nome,:Login,:Senha,:Perfil,:Telefone)";
//=======================================MÉTODOS
inserir...===============================================
//Os métodos basicamente criam uma conexão, criam
uma PDO, preparam a chamada, passam os valores a serem postos no BD dentro
do comando da
//chamada da procedure e fazem a chamada p/ a
Procedure desejada.
//A nomenclatura usada nos métodos é
'inserirAlgumaCoisa'
public function inserirUsuario($email,$nome,$login,
$senha,$perfil,$telefone)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlInsertUsuario);
$st->bindParam(':Email',$email);
$st->bindParam(':Nome',$nome);
$st->bindParam(':Login',$login);
$st->bindParam(':Senha',$senha);
179
$st->bindParam(':Perfil',$perfil);
$st->bindParam(':Telefone',$telefone);
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function inserirEstacao($ip, $nome, $local, $so,
$hd, $processador, $ram, $status, $usuario)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlInsertEstacao);
$st->bindParam(':IP',$ip);
$st->bindParam(':Nome',$nome);
$st->bindParam(':Local',$local);
$st->bindParam(':SO',$so);
$st->bindParam(':HD',$hd);
$st->bindParam(':CPU',$processador);
$st->bindParam(':RAM',$ram);
$st->bindParam(':Status',$status);
180
$st->bindParam(':Usuario',$usuario);
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function inserirNodorede($ip, $nome, $local,
$marca, $modelo, $frequencia, $dbi, $status,$tipo, $usuario)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlInsertNoderede);
$st->bindParam(':IP',$ip);
$st->bindParam(':Nome',$nome);
$st->bindParam(':Local',$local);
$st->bindParam(':Marca',$marca);
$st->bindParam(':Modelo',$modelo);
$st->bindParam(':Freq',$frequencia);
$st->bindParam(':DBI',$dbi);
$st->bindParam(':Status',$status);
$st->bindParam(':Tipo',$tipo);
181
$st->bindParam(':Usuario',$usuario);
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function
inserirDispositivo($ip,$nome,$local,$status,$tipo,$usuario)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlInsertDispositivo);
$st->bindParam(':IP',$ip);
$st->bindParam(':Nome',$nome);
$st->bindParam(':Local',$local);
$st->bindParam(':Status',$status);
$st->bindParam(':Tipo',$tipo);
$st->bindParam(':Usuario',$usuario);
$st->execute();
}
182
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function inserirGrupo($nome, $usuario)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this->sqlInsertGrupo);
$st->bindParam(':Nome',$nome);
$st->bindParam(':Usuario',$usuario);
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function inserirLog($usuario,$evento,$datahora)
{
183
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this->sqlInsertLog);
$st->bindParam(':Usuario',$usuario);
$st->bindParam(':DataHora',$datahora);
$st->bindParam(':Evento',$evento);
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function
inserirOcorrenciaEstacao($estacao,$datahora)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
184
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlInsertOcorrenciaEstacao);
$st->bindParam(':ID',$estacao);
$st->bindParam(':DataHora',$datahora);
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function
inserirOcorrenciaNoderede($noderede,$datahora)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlInsertOcorrenciaNoderede);
$st->bindParam(':ID',$noderede);
$st->bindParam(':DataHora',$datahora);
185
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function
inserirOcorrenciaDispositivo($dispositivo,$datahora)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlInsertOcorrenciaDispositivo);
$st->bindParam(':ID',$dispositivo);
$st->bindParam(':DataHora',$datahora);
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
186
}
}
}
15.2.1.4 Página alterar.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento de Sistemas -
Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes - 2013
@O switch irá verificar qual o tipo de formulário (alteração) está sendo passado.
Definido o tipo de alteração, cria-se um objeto Update, chama-se o método
adequado (informando os valores a serem alterados). Feita a alteração, é hora de
registrar isso na tabela de logs do sistema informando o usuário q fez a alteração
(id), o tipo de alteração (tipoform) e quando ele fez tal alteração (date()). Finalmente,
é informando (via 'alert') que a alteração foi realizada e é feito um redirecionamento
*/
session_start(); //Pega os valores personalizados do usuário
atual.
switch ($_POST['tipoform'])
{
case 'Alterar Usuario' :
{
require_once('alterar.class.php');
$update = new Update();
$update-
>alterarUsuario($_POST['id'],$_POST['email'],$_POST['nome'],$_POST['perfil'],$_PO
ST['telefone']);
require_once("inserir.class.php");
187
$insert = new Insert();
$insert-
>inserirLog($_SESSION['id'],$_POST['tipoform'],date('d/m/Y H:i'));
echo("<script type='text/javascript'>
alert('Usu\u00e1rio alterado com sucesso!');
location.href='../administracao';</script>");
break;
}
case 'Alterar Usuario Logado' :
{
require_once('alterar.class.php');
$update = new Update();
$update-
>alterarUsuarioLogado($_POST['id'],$_POST['email'],$_POST['nome'],$_POST['login
'],$_POST['senha'],$_POST['perfil'],$_POST['telefone']);
//Atualizando a sessão com os novos dados do
usuário logado no sistema.
$_SESSION['nome'] = $_POST['nome'];
$_SESSION['login'] = $_POST['login'];
$_SESSION['senha'] = $_POST['senha'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['perfil'] = $_POST['perfil'];
$_SESSION['telefone'] = $_POST['telefone'];
require_once("inserir.class.php");
188
$insert = new Insert();
$insert-
>inserirLog($_SESSION['id'],$_POST['tipoform'],date('d/m/Y H:i'));
echo("<script type='text/javascript'>
alert('Usu\u00e1rio alterado com sucesso!');
location.href='../administracao';</script>");
break;
}
case 'Alterar Estacao' :
{
require_once('alterar.class.php');
$update = new Update();
$update-
>alterarEstacao($_POST['id'],$_POST['ip'],$_POST['nome'],$_POST['local'],$_POST[
'so'],$_POST['hd'],$_POST['cpu'],$_POST['ram'],$_POST['status'], $_SESSION['id']);
require_once("inserir.class.php");
$insert = new Insert();
$insert-
>inserirLog($_SESSION['id'],$_POST['tipoform'],date('d/m/Y H:i'));
echo("<script type='text/javascript'>
alert('Esta\u00e7\u00e3o alterada com sucesso!');
location.href='../inventario/estacoes.php';</script>");
break;
189
}
case 'Alterar No de Rede' :
{
require_once('alterar.class.php');
$update = new Update();
$update-
>alterarNoderede($_POST['id'],$_POST['ip'],$_POST['nome'],$_POST['local'],$_POS
T['marca'],$_POST['modelo'],$_POST['freq'],$_POST['dbi'],$_POST['status'],$_POST
['tipono'],$_SESSION['id']);
require_once("inserir.class.php");
$insert = new Insert();
$insert-
>inserirLog($_SESSION['id'],$_POST['tipoform'],date('d/m/Y H:i'));
echo("<script type='text/javascript'> alert('N\u00f3
de Rede alterado com sucesso!');
location.href='../inventario/noderede.php';</script>");
break;
}
case 'Alterar Dispositivo' :
{
require_once('alterar.class.php');
$update = new Update();
$update-
190
>alterarDispositivo($_POST['id'],$_POST['ip'],$_POST['nome'],$_POST['local'],$_PO
ST['status'],$_POST['tipodispositivo'],$_SESSION['id']);
require_once("inserir.class.php");
$insert = new Insert();
$insert-
>inserirLog($_SESSION['id'],$_POST['tipoform'],date('d/m/Y H:i'));
echo("<script type='text/javascript'>
alert('Dispositivo alterado com sucesso!');
location.href='../inventario/dispositivos.php';</script>");
break;
}
case 'Alterar Grupo' :
{
require_once('alterar.class.php');
$update = new Update();
$update-
>alterarGrupo($_POST['nomegrupo'],$_POST['idgrupo']);
//Alterando o 'id' do grupo nos dispositivos que
foram selecionadas no checkbox
if(isset($_POST['iddispositivo']))
{
for($index = 0; $index <
count($_POST['iddispositivo']); $index++)
{
$update-
191
>alterarDispositivoGrupo($_POST['idgrupo'], $_POST['iddispositivo'][$index]);
}
}
//Alterando o 'id' do grupo nas estações que foram
selecionadas no checkbox
if(isset($_POST['idestacao']))
{
for($index = 0; $index <
count($_POST['idestacao']); $index++)
{
$update-
>alterarEstacaoGrupo($_POST['idgrupo'], $_POST['idestacao'][$index]);
}
}
//Alterando o 'id' do grupo nos nós de rede que
foram selecionadas no checkbox
if(isset($_POST['idnoderede']))
{
for($index = 0; $index <
count($_POST['idnoderede']); $index++)
{
$update-
>alterarNoderedeGrupo($_POST['idgrupo'], $_POST['idnoderede'][$index]);
}
}
require_once("inserir.class.php");
$insert = new Insert();
$insert-
>inserirLog($_SESSION['id'],$_POST['tipoform'],date('d/m/Y H:i'));
192
echo("<script type='text/javascript'> alert('Grupo
alterado com sucesso!'); location.href='../monitoramento/grupos.php';</script>");
break;
}
}
15.2.1.5 Arquivo alterar.class.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento de Sistemas -
Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes - 2013
@Classe responsável por alterar os valores inseridos no BD. Os atributos contém a
chamada específica p/ a Procedure específica. Já os métodos são os resposnáveis
por estabelecer a conexão com o BD, criar as PDO (Php Data Object), preparam os
comandos SQL, trocar os valores (bindParam) e executam a chamada p/ as
Procedures.
*/
class Update
{
public $resposta; //Armazena uma possível resposta -
Não vai ser muito usada, mas caso haja problemas, ela pode ser útil
//=============================================ATRIBU
TOS sqlUpdate...=============================================
//Os atributos basicamente contêm as chamadas ('CALL')
para a alteração desejada, chamada essa feita para a procedure armazenada no
BD.
//A nomenclatura usada nos atributos é sempre
'sqlUpdateAlgumaCoisa'.
193
private $sqlUpdateUsuario = "CALL
alterarUsuario(:ID,:Email,:Nome,:Perfil,:Telefone)";
private $sqlUpdateUsuarioLogado = "CALL
alterarUsuarioLogado(:ID,:Email,:Nome,:Login,:Senha,:Perfil,:Telefone)";
private $sqlUpdateEstacao = "CALL
alterarEstacao(:ID,:IP,:Nome,:Local,:SO,:HD,:CPU,:Ram,:Status)";
private $sqlUpdateNoderede = "CALL
alterarNoderede(:ID,:IP,:Nome,:Local,:Marca,:Modelo,:Freq,:DBI,:Status,:Tipo)";
private $sqlUpdateDispositivo = "CALL
alterarDispositivo(:ID,:IP, :Nome, :Local, :Status, :Tipo)";
private $sqlUpdateGrupo = "CALL
alterarGrupo(:Nome,:ID)";
private $sqlUpdateEstacaoSemGrupo = "CALL
alterarEstacaoSemGrupo()";
private $sqlUpdateNoderedeSemGrupo = "CALL
alterarNoderedeSemGrupo()";
private $sqlUpdateDispositivoSemGrupo = "CALL
alterarDispositivoSemGrupo()";
private $sqlUpdateEstacaoGrupo = "CALL
alterarEstacaoGrupo(:Grupo,:ID)";
private $sqlUpdateNoderedeGrupo = "CALL
alterarNoderedeGrupo(:Grupo, :ID)";
194
private $sqlUpdateDispositivoGrupo = "CALL
alterarDispositivoGrupo(:Grupo,:ID)";
//==================================================M
ÉTODOS
alterar...======================================================
//Os métodos basicamente criam uma conexão, criam
uma PDO, preparam a chamada, insere o valor a ser alterado no BD dentro do
comando da
//chamada da procedure e fazem a chamada p/ a
Procedure desejada.
//A nomenclatura usada nos métodos é
'alterarAlgumaCoisa'
public function
alterarUsuario($id,$email,$nome,$perfil,$telefone)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlUpdateUsuario);
$st->bindParam(':ID',$id);
$st->bindParam(':Email',$email);
$st->bindParam(':Nome',$nome);
$st->bindParam(':Perfil',$perfil);
195
$st->bindParam(':Telefone',$telefone);
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function
alterarUsuarioLogado($id,$email,$nome,$login,$senha,$perfil,$telefone)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlUpdateUsuarioLogado);
$st->bindParam(':ID',$id);
$st->bindParam(':Email',$email);
$st->bindParam(':Nome',$nome);
$st->bindParam(':Login',$login);
$st->bindParam(':Senha',$senha);
$st->bindParam(':Perfil',$perfil);
$st->bindParam(':Telefone',$telefone);
196
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function alterarEstacao($id, $ip, $nome, $local,
$so, $hd, $cpu, $ram, $status)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlUpdateEstacao);
$st->bindParam(':IP',$ip);
$st->bindParam(':Nome',$nome);
$st->bindParam(':Local',$local);
$st->bindParam(':SO',$so);
$st->bindParam(':HD',$hd);
$st->bindParam(':CPU',$cpu);
$st->bindParam(':Ram',$ram);
$st->bindParam(':Status',$status);
$st->bindParam(':ID',$id);
197
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function alterarNoderede($id, $ip, $nome, $local,
$marca, $modelo, $freq, $dbi, $status, $tipo)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlUpdateNoderede);
$st->bindParam(':ID',$id);
$st->bindParam(':IP',$ip);
$st->bindParam(':Nome',$nome);
$st->bindParam(':Local',$local);
$st->bindParam(':Marca',$marca);
$st->bindParam(':Modelo',$modelo);
$st->bindParam(':Freq',$freq);
$st->bindParam(':DBI',$dbi);
$st->bindParam(':Status',$status);
$st->bindParam(':Tipo',$tipo);
198
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function alterarDispositivo($id, $ip, $nome, $local,
$status, $tipo)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlUpdateDispositivo);
$st->bindParam(':ID',$id);
$st->bindParam(':IP',$ip);
$st->bindParam(':Nome',$nome);
$st->bindParam(':Local',$local);
$st->bindParam(':Status',$status);
$st->bindParam(':Tipo',$tipo);
$st->execute();
}
199
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function alterarDispositivoGrupo($idGrupo,
$idDispositivo)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlUpdateDispositivoGrupo);
$st->bindParam(":Grupo",$idGrupo);
$st->bindParam(":ID",$idDispositivo);
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
200
public function alterarNoderedeGrupo($idGrupo,
$idNoderede)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlUpdateNoderedeGrupo);
$st->bindParam(":Grupo",$idGrupo);
$st->bindParam(":ID",$idNoderede);
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function
alterarEstacaoGrupo($idGrupo,$idEstacao)
{
try
{
201
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlUpdateEstacaoGrupo);
$st->bindParam(":Grupo",$idGrupo);
$st->bindParam(":ID",$idEstacao);
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function alterarEstacaoSemGrupo()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
202
>sqlUpdateEstacaoSemGrupo);
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function alterarNoderedeSemGrupo()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlUpdateNoderedeSemGrupo);
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
203
public function alterarDispositivoSemGrupo()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlUpdateDispositivoSemGrupo);
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function alterarGrupo($nome, $idgrupo)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
204
$st = $pdo->prepare($this-
>sqlUpdateGrupo);
$st->bindParam(":Nome",$nome);
$st->bindParam(":ID",$idgrupo);
$st->execute();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
}
15.2.1.6 Página excluir.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento de Sistemas -
Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes - 2013
@O switch irá verificar qual o tipo de formulário (exclusão) está sendo passado.
Definido o tipo de exclusão, cria-se um objeto Delete, chama-se o método adequado
(informando o 'id' no registro a ser excluído no BD). Feito a exclusão, é hora de
registrar isso na tabela de logs do sistema informando o usuário q fez a exlcusão
(id), o tipo de exclusão (tipoform) e quando ele fez tal exclusão (date()). Finalmente,
é informando (via 'alert') que a exclusão foi realizada e é feito um redirecionamento
*/
session_start(); //Pega os valores personalizados do usuário
atual.
switch ($_POST['tipoform'])
205
{
case 'Excluir Usuario' :
{
if(isset($_POST['idusuario']))
{
require_once('excluir.class.php');
$delete = new Delete();
$delete-
>excluirUsuario($_POST['idusuario']);
require_once("inserir.class.php");
$insert = new Insert();
$insert-
>inserirLog($_SESSION['id'],$_POST['tipoform'],date('d/m/Y H:i'));
echo("<script type='text/javascript'>
alert('Usu\u00e1rio exclu\u00eddo com sucesso!');
location.href='../administracao';</script>");
}
else
echo("<script type='text/javascript'>
alert('Nenhum Usu\u00e1rio foi selecionado!');
location.href='../administracao/excluirusuario.php';</script>");
break;
}
case 'Excluir Estacao' :
{
206
if(isset($_POST['id']))
{
require_once('excluir.class.php');
$delete = new Delete();
$delete->excluirEstacao($_POST['id']);
require_once("inserir.class.php");
$insert = new Insert();
$insert-
>inserirLog($_SESSION['id'],$_POST['tipoform'],date('d/m/Y H:i'));
echo("<script type='text/javascript'>
alert('Esta\u00e7\u00e3o exclu\u00edda com sucesso!');
location.href='../inventario/estacoes.php';</script>");
}
else
echo("<script type='text/javascript'>
alert('Nenhuma Esta\u00e7\u00e3o foi selecionada!');
location.href='../inventario/excluirestacao.php';</script>");
break;
}
case 'Excluir No de Rede' :
{
if(isset($_POST['id']))
{
require_once('excluir.class.php');
207
$delete = new Delete();
$delete->excluirNoderede($_POST['id']);
require_once("inserir.class.php");
$insert = new Insert();
$insert-
>inserirLog($_SESSION['id'],$_POST['tipoform'],date('d/m/Y H:i'));
echo("<script type='text/javascript'>
alert('N\u00f3 de Rede exclu\u00eddo com sucesso!');
location.href='../inventario/noderede.php';</script>");
}
else
echo("<script type='text/javascript'>
alert('Nenhum N\u00f3 de Rede foi selecionado!');
location.href='../inventario/excluirnoderede.php';</script>");
break;
}
case 'Excluir Dispositivo' :
{
if(isset($_POST['id']))
{
require_once('excluir.class.php');
$delete = new Delete();
$delete->excluirDispositivo($_POST['id']);
208
require_once("inserir.class.php");
$insert = new Insert();
$insert-
>inserirLog($_SESSION['id'],$_POST['tipoform'],date('d/m/Y H:i'));
echo("<script type='text/javascript'>
alert('Dispositivo exclu\u00eddo com sucesso!');
location.href='../inventario/dispositivos.php';</script>");
}
else
echo("<script type='text/javascript'>
alert('Nenhum Dispositivo foi selecionado!');
location.href='../inventario/excluirdispositivo.php';</script>");
break;
}
case 'Excluir Grupo' :
{
if(isset($_POST['idgrupo']))
{
require_once('excluir.class.php');
$delete = new Delete();
$delete->excluirGrupo($_POST['idgrupo']);
require_once("inserir.class.php");
$insert = new Insert();
209
require_once('alterar.class.php');
$update = new Update();
//Os três métodos alterar Inserem os ativos
que pertenciam ao grupo excuído no Grupo Padrão. Ninguém pode ficar sem um
grupo, né?
$update->alterarEstacaoSemGrupo();
$update->alterarNoderedeSemGrupo();
$update->alterarDispositivoSemGrupo();
$insert-
>inserirLog($_SESSION['id'],$_POST['tipoform'],date('d/m/Y H:i'));
echo("<script type='text/javascript'>
alert('Grupo exclu\u00eddo com sucesso!');
location.href='../monitoramento/grupos.php';</script>");
}
else
echo("<script type='text/javascript'>
alert('Nenhum Grupo foi selecionado!');
location.href='../monitoramento/excluirgrupo.php';</script>");
break;
}
}
15.2.1.7 Arquivo excluir.class.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento de Sistemas -
Unopar Arapiraca - AL
210
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes - 2013
@Classe responsável por excluir os valores inseridos no BD. Os atributos contém a
chamada específica p/ a Procedure específica. Já os métodos são os resposnáveis
por estabelecer a conexão com o BD, criar as PDO (Php Data Object), preparam os
comandos SQL, trocar os valores (bindParam) e executam a chamada p/ as
Procedures p/ a devida exclusão.
*/
class Delete
{
public $resposta; //Armazena uma possível resposta - não
vai ser muito usado.
//=======================================ATRIBUTOS
sqlDelete...=============================================
//Os atributos basicamente contêm as chamadas ('CALL')
para a exclusão desejada, chamada essa feita para a procedure armazenada no BD.
//A nomenclatura usada nos atributos é sempre
'sqlDeleteAlgumaCoisa'.
private $sqlDeleteUsuario = "CALL excluirUsuario(:ID)";
private $sqlDeleteEstacao = "CALL excluirEstacao(:ID)";
private $sqlDeleteNoderede = "CALL
excluirNoderede(:ID)";
private $sqlDeleteDispositivo = "CALL
excluirDispositivo(:ID)";
private $sqlDeleteGrupo = "CALL excluirGrupo(:ID)";
//=======================================MÉTODOS
211
excluir...===============================================
//Os métodos basicamente criam uma conexão, criam
uma PDO, preparam a chamada, passam o 'id' do item a ser excluído no BD dentro
do comando da
//chamada da procedure e fazem a chamada p/ a
Procedure desejada.
//A nomenclatura usada nos métodos é
'excluirAlgumaCoisa'
public function excluirUsuario($idUsuario)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this->sqlDeleteUsuario);
$st->bindParam(':ID',$idUsuario);
$st->execute();
}
catch (Exception $e)
{
echo "Erro: " . $getMessage();
}
}
public function excluirEstacao($id)
212
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this->sqlDeleteEstacao);
$st->bindParam(':ID',$id);
$st->execute();
}
catch (Exception $e)
{
echo "Erro: " . $getMessage();
}
}
public function excluirNoderede($id)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
213
$st = $pdo->prepare($this->sqlDeleteNoderede);
$st->bindParam(':ID',$id);
$st->execute();
}
catch (Exception $e)
{
echo "Erro: " . $getMessage();
}
}
public function excluirDispositivo($id)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this->sqlDeleteDispositivo);
$st->bindParam(':ID',$id);
$st->execute();
}
catch (Exception $e)
{
echo "Erro: " . $getMessage();
214
}
}
public function excluirGrupo($id)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this->sqlDeleteGrupo);
$st->bindParam(':ID',$id);
$st->execute();
}
catch (Exception $e)
{
echo "Erro: " . $getMessage();
}
}
}
15.2.1.8 Arquivo pesquisar.class.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento de Sistemas -
Unopar Arapiraca - AL
215
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes - 2013
@Classe responsável por conter os comandos relacionados às pesquisas SQL. Os
atributos contém a chamada p/ a Procedure desejada. Os métodos trocam os
valores, estabelecem a conexão, criam as PDO e executam a chamada contida nos
atributos.
*/
class Select
{
public $registro; //Armazena o resultado da pesquisa.
//=============================================ATRIBU
TOS sqlSelect... ======================================
//Os atributos basicamente contêm as chamadas ('CALL')
para a pesquisa desejada, chamada essa feita para a procedure armazenada no BD.
//A nomenclatura usada nos atributos é sempre
'sqlSelectAlgumaCoisa'.
private $sqlSelectLogin = "CALL
pesquisarUsuarioLogin(:Login,:Senha)";
private $sqlSelectUsuarioTodos = "CALL
pesquisarUsuarioTodos()";
private $sqlSelectUsuarioTodosExceto = "CALL
pesquisarUsuarioTodosExceto(:ID)";
private $sqlSelectUsuarioID = "CALL
pesquisarUsuarioID(:ID)";
private $sqlSelectEstacaoID = "CALL
pesquisarEstacaoID(:ID)";
private $sqlSelectNoderedeID = "CALL
216
pesquisarNoderedeID(:ID)";
private $sqlSelectDispositivoID = "CALL
pesquisarDispositivoID(:ID)";
private $sqlSelectEstacaoTodos = "CALL
pesquisarEstacaoTodos()";
private $sqlSelectNoderedeTodos = "CALL
pesquisarNoderedeTodos()";
private $sqlSelectDispositivoTodos = "CALL
pesquisarDispositivoTodos()";
private $sqlSelectEstacaoLimite = "CALL
pesquisarEstacaoLimite()";
private $sqlSelectNoderedeLimite = "CALL
pesquisarNoderedeLimite()";
private $sqlSelectDispositivoLimite = "CALL
pesquisarDispositivoLimite()";
private $sqlSelectGrupoTodos = "CALL
pesquisarGrupoTodos()";
private $sqlSelectGrupoUltimo = "CALL
pesquisarGrupoUltimo()";
private $sqlSelectGrupoID = "CALL
pesquisarGrupoID(:ID)";
private $sqlSelectEstacaoGrupo = "CALL
pesquisarEstacaoGrupo(:IDGrupo)";
217
private $sqlSelectNoderedeGrupo = "CALL
pesquisarNoderedeGrupo(:IDGrupo)";
private $sqlSelectDispositivoGrupo = "CALL
pesquisarDispositivoGrupo(:IDGrupo)";
private $sqlSelectQuantOcorrenciaEstacao = "CALL
pesquisarQuantOcorrenciaEstacao(:ID,:DataHora)";
private $sqlSelectQuantOcorrenciaNoderede = "CALL
pesquisarQuantOcorrenciaNoderede(:ID,:DataHora)";
private $sqlSelectQuantOcorrenciaDispositivo = "CALL
pesquisarQuantOcorrenciaDispositivo(:ID,:DataHora)";
private $sqlSelectQuantUsuario = "CALL
pesquisarQuantUsuario()";
private $sqlSelectQuantAdministrador = "CALL
pesquisarQuantAdministrador()";
private $sqlSelectQuantOperador = "CALL
pesquisarQuantOperador()";
private $sqlSelectAcessoData = "CALL
pesquisarAcessoData(:DataHora)";
private $sqlSelectAcessoUsuario = "CALL
pesquisarAcessoUsuario(:ID)";
private $sqlSelectAcoesData = "CALL
pesquisarAcoesData(:DataHora)";
218
private $sqlSelectAcoesUsuario = "CALL
pesquisarAcoesUsuario(:ID)";
private $sqlSelectQuantEstacao = "CALL
pesquisarQuantEstacao()";
private $sqlSelectQuantNoderede = "CALL
pesquisarQuantNoderede()";
private $sqlSelectQuantDispositivo = "CALL
pesquisarQuantDispositivo()";
private $sqlSelectEstacoesUsuario = "CALL
pesquisarEstacoesUsuario(:ID)";
private $sqlSelectNosderedeUsuario = "CALL
pesquisarNosderedeUsuario(:ID)";
private $sqlSelectDispositivosUsuario = "CALL
pesquisarDispositivosUsuario(:ID)";
private $sqlSelectUltimasOcorrEstacao = "CALL
pesquisarUltimasOcorrEstacao()";
private $sqlSelectUltimasOcorrNoderede = "CALL
pesquisarUltimasOcorrNoderede()";
private $sqlSelectUltimasOcorrDispositivo = "CALL
pesquisarUltimasOcorrDispositivo()";
private $sqlSelectOcorrEstacao = "CALL
pesquisarOcorrEstacao()";
private $sqlSelectOcorrNoderede = "CALL
219
pesquisarOcorrNoderede()";
private $sqlSelectOcorrDispositivo = "CALL
pesquisarOcorrDispositivo()";
private $sqlSelectUltimoAcesso = "CALL
pesquisarUltimoAcesso(:ID)";
private $sqlSelectTodosLog = "CALL
pesquisarTodosLog()";
//=============================================MÉ
TODOS pesquisar... ======================================
//Os métodos basicamente criam uma conexão, criam uma
PDO, preparam a chamada, fazem a chamada p/ a Procedure desejada e passam o
resultado p/ o registro.
//A nomenclatura usada nos métodos é 'pesquisarAlgumaCoisa'
public function pesquisarUsuarioTodos()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectUsuarioTodos);
$st->execute();
220
$this->registro = $st;
}
catch (Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function
pesquisarUsuarioTodosExceto($idusuarioatual)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectUsuarioTodosExceto);
$st->bindParam(':ID',$idusuarioatual);
$st->execute();
$this->registro = $st->fetchAll();
}
catch (Exception $e)
{
221
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarUsuarioID($idusuario)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectUsuarioID);
$st->bindParam(':ID',$idusuario);
$st->execute();
$this->registro = $st;
}
catch (Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarDispositivoID($iddispositivo)
{
try
222
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectDispositivoID);
$st->bindParam(':ID',$iddispositivo);
$st->execute();
$this->registro = $st->fetchAll();
}
catch (Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarEstacaoID($idestacao)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
223
$st = $pdo->prepare($this-
>sqlSelectEstacaoID);
$st->bindParam(':ID',$idestacao);
$st->execute();
$this->registro = $st->fetchAll();
}
catch (Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarNoderedeID($idestacao)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectNoderedeID);
$st->bindParam(':ID',$idestacao);
$st->execute();
224
$this->registro = $st->fetchAll();
}
catch (Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarUsuarioLogin($login,$senha)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this->sqlSelectLogin);
$st->bindParam(':Login',$login);
$st->bindParam(':Senha',$senha);
$st->execute();
$this->registro = $st->fetchObject();
}
catch (Exception $e)
{
225
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarEstacaoTodos()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectEstacaoTodos);
$st->execute();
$this->registro = $st->fetchAll();
}
catch (Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarEstacaoLimite()
{
try
{
require_once("conexao.class.php");
226
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectEstacaoLimite);
$st->execute();
$this->registro = $st;
}
catch (Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarNoderedeTodos()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectNoderedeTodos);
227
$st->execute();
$this->registro = $st->fetchAll();
}
catch (Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarNoderedeLimite()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectNoderedeLimite);
$st->execute();
$this->registro = $st;
}
catch (Exception $e)
{
echo "Erro: " . $e->getMessage();
}
228
}
public function pesquisarDispositivoTodos()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectDispositivoTodos);
$st->execute();
$this->registro = $st->fetchAll();
}
catch (Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarDispositivoLimite()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
229
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectDispositivoLimite);
$st->execute();
$this->registro = $st;
}
catch (Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarGrupoUltimo()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectGrupoUltimo);
$st->execute();
230
$this->registro = $st->fetchObject();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarGrupoTodos()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectGrupoTodos);
$st->execute();
$this->registro = $st->fetchAll();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
231
public function pesquisarGrupoID($grupo)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectGrupoID);
$st->bindParam(':ID',$grupo);
$st->execute();
$this->registro = $st->fetchAll();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarEstacaoGrupo($grupo)
{
try
{
require_once("conexao.class.php");
232
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectEstacaoGrupo);
$st->bindParam(':IDGrupo',$grupo);
$st->execute();
$this->registro = $st->fetchAll();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarNoderedeGrupo($grupo)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
233
>sqlSelectNoderedeGrupo);
$st->bindParam(':IDGrupo',$grupo);
$st->execute();
$this->registro = $st->fetchAll();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarDispositivoGrupo($grupo)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectDispositivoGrupo);
$st->bindParam(':IDGrupo',$grupo);
$st->execute();
$this->registro = $st->fetchAll();
234
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function
pesquisarQuantOcorrenciaEstacao($estacao,$datahora)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectQuantOcorrenciaEstacao);
$st->bindParam(':ID',$estacao);
$st->bindParam(':DataHora',$datahora);
$st->execute();
return $st->fetchAll();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
235
}
}
public function
pesquisarQuantOcorrenciaNoderede($noderede,$datahora)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectQuantOcorrenciaNoderede);
$st->bindParam(':ID',$noderede);
$st->bindParam(':DataHora',$datahora);
$st->execute();
return $st->fetchAll();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function
236
pesquisarQuantOcorrenciaDispositivo($dispositivo,$datahora)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectQuantOcorrenciaDispositivo);
$st->bindParam(':ID',$dispositivo);
$st->bindParam(':DataHora',$datahora);
$st->execute();
return $st->fetchAll();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarQuantUsuario()
{
try
{
require_once("conexao.class.php");
237
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectQuantUsuario);
$st->execute();
$this->registro = $st->fetch();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarQuantAdministrador()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectQuantAdministrador);
238
$st->execute();
$this->registro = $st->fetch();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarQuantOperador()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectQuantOperador);
$st->execute();
$this->registro = $st->fetch();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
239
}
}
public function pesquisarAcessoData($data)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectAcessoData);
$st->bindParam(':DataHora',$data);
$st->execute();
$this->registro = $st;
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarAcessoUsuario($usuario)
{
240
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectAcessoUsuario);
$st->bindParam(':ID',$usuario);
$st->execute();
$this->registro = $st;
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarAcoesData($data)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
241
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectAcoesData);
$st->bindParam(':DataHora',$data);
$st->execute();
$this->registro = $st;
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarAcoesUsuario($usuario)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectAcoesUsuario);
$st->bindParam(':ID',$usuario);
242
$st->execute();
$this->registro = $st;
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarQuantEstacao()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectQuantEstacao);
$st->execute();
$this->registro = $st->fetch();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
243
}
public function pesquisarQuantNoderede()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectQuantNoderede);
$st->execute();
$this->registro = $st->fetch();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarQuantDispositivo()
{
try
{
require_once("conexao.class.php");
244
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectQuantDispositivo);
$st->execute();
$this->registro = $st->fetch();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarEstacoesUsuario($idusuario)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectEstacoesUsuario);
245
$st->bindParam(':ID',$idusuario);
$st->execute();
$this->registro = $st;
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarNosderedeUsuario($idusuario)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectNosderedeUsuario);
$st->bindParam(':ID',$idusuario);
$st->execute();
$this->registro = $st;
}
246
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarDispositivosUsuario($idusuario)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectDispositivosUsuario);
$st->bindParam(':ID',$idusuario);
$st->execute();
$this->registro = $st;
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
247
public function pesquisarUltimasOcorrEstacao()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectUltimasOcorrEstacao);
$st->execute();
$this->registro = $st;
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarUltimasOcorrNoderede()
{
try
{
require_once("conexao.class.php");
248
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectUltimasOcorrNoderede);
$st->execute();
$this->registro = $st;
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarUltimasOcorrDispositivo()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectUltimasOcorrDispositivo);
249
$st->execute();
$this->registro = $st;
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarOcorrEstacao()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectOcorrEstacao);
$st->execute();
$this->registro = $st;
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
250
}
public function pesquisarOcorrNoderede()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectOcorrNoderede);
$st->execute();
$this->registro = $st;
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarOcorrDispositivo()
{
try
{
require_once("conexao.class.php");
251
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectOcorrDispositivo);
$st->execute();
$this->registro = $st;
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarUltimoAcesso($idusuario)
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectUltimoAcesso);
252
$st->bindParam(':ID',$idusuario);
$st->execute();
$this->registro = $st->fetchObject();
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
public function pesquisarTodosLog()
{
try
{
require_once("conexao.class.php");
$conexao = new Conexao();
$pdo = new PDO($conexao->dsn,$conexao-
>usuario,$conexao->senha,$conexao->opcoes);
$st = $pdo->prepare($this-
>sqlSelectTodosLog);
$st->execute();
$this->registro = $st;
}
253
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
}
15.2.2 CÓDIGO CSS (comum.css)
body,html,div,blockquote,img,label,p,a,h1,h2,h3,h4,h5,h6,pre,ul,ol,li,dl,dt,dd,form,fi
eldset,input,th,td,figure {border:0;margin:0;padding:0}
h1,h2,h3,h4,h5,h6 {font-size:100%}
img{display:block;height:auto;max-width:100%;width:auto}
a,:focus{outline:0}
table{height:auto;max-width:100%;width:auto;border-collapse:separate;border-
spacing:0}
caption,th,td{font-weight:normal;text-align:left}
::-moz-selection{background:#ff0}
::selection{background:#ff0}
html{background-color:#f8f8f8}
body{background-color:#fff}
.center-column{max-width:36.25em;margin:0 auto;padding:2.188em 0.875em
1em;position:relative}
.center-column, .search .center-column{border-bottom:1px solid #ddd}
.search .center-column{border-bottom-width:0.563em}
.search.search-no-results .center-column{border-bottom:none}
a{
border-bottom:1px dotted;font-weight:700;text-decoration:none;-moz-transition:all
0.25s ease-in-out 0s;-ms-transition:all 0.25s ease-in-out 0s;-o-transition:all 0.25s ease-in-out 0s;-
webkit-transition:all 0.25s ease-in-out 0s;transition:all 0.25s ease-in-out 0s}
a,a:visited{border-bottom-color:#222;color:#222}
a:hover,a:active{border-bottom-color:#aeaeae;color:#aeaeae}
.clear:after{clear:both;content:"";display:block;height:0;visibility:hidden}
@font-face{font-weight:normal;font-style:normal}
.logo [data-icon]:before{content:attr(data-icon);font-style:normal;font-
weight:400;line-height:1;speak:none}
body{color:#555;font-family:Helvetica,Arial,sans-serif;font-style:normal;font-
weight:400;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
h1,h2,h3,h4,h5,h6{color:#222;font-weight:700}
254
h1{font-size:1.75em;letter-spacing:-0.036em;line-height:1.25;margin-
bottom:1.25em}
h2{font-size:1.5em;letter-spacing:-0.042em;line-height:1.25;margin-bottom:1.25em}
h3{font-size:1.25em;letter-spacing:-0.050em;line-height:1.2;margin-bottom:1.2em}
h4{font-size:1em;line-height:1.5;margin-bottom:1.5em;margin-top:1.5em}
h5{font-size:0.875em;line-height:1.5;margin-bottom:1.5em;margin-top:1.5em}
h6{font-size:0.75em;line-height:1.5;margin-bottom:1.5em;margin-top:1.5em}
p{font-size:0.875em;line-height:1.5;margin-bottom:1.5em}
p{-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}
p a{-moz-hyphens:none;-webkit-hyphens:none;hyphens:none}
p+h1{margin-top:1.25em}p+h2{margin-top:1.25em}
p+h3{margin-top:1.2em}
p+p{margin-top:-1.5em;text-indent:1.5em}
strong,b{color:#222;font-weight:700}
ul,ol,dl{font-size:0.875em;line-height:1.5;margin-bottom:1.5em}
ul{padding-left:1em}
ul{list-style:disc}
ul ul, ol ul{list-style:circle}
ol, ul ol, ol ol ol{list-style:decimal}
ul ul, ol ul, ul ol, ol ol{font-size:inherit;margin:0.5em 0}
ul+h1,ol+h1,dl+h1{margin-top:1.25em}
ul+h2,ol+h2,dl+h2{margin-top:1.25em}
ul+h3,ol+h3,dl+h3{margin-top:1.2em}
table{font-size:0.500em;line-height:1.5;margin-bottom:1.5em;margin-
top:1.5em;width:100%}
th{color:#222;font-weight:700}
th,td{border-bottom:1px solid #ddd;padding:0.643em 0.5em 0.571em 0;text-
align:center;vertical-align:top}
table+h1{margin-top:1.25em}
table+h2{margin-top:1.25em}
table+h3{margin-top:1.2em}
label{color:#222;font-size:0.75em;font-weight:700;line-height:1.5;margin-
bottom:0.5em}
input[type=text],input[type=email],input[type=url],input[type=password],input[type=s
earch],input[type=submit],textarea{
font-family:Helvetica,Arial,sans-serif;-moz-appearance:none;-o-appearance:none;-
webkit-appearance:none}
input[type=text],input[type=email],input[type=url],input[type=password],input[type=s
earch],textarea{
background-color:#f3f3f3;color:#555;font-
255
size:0.875em;padding:0.643em;width:100%;-moz-border-radius:0.214em;-webkit-border-
radius:0.214em;border-radius:0.214em;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-
sizing:border-box;-moz-transition:all 0.5s ease-in-out 0s;-ms-transition:all 0.5s ease-in-out 0s;-o-
transition:all 0.5s ease-in-out 0s;-webkit-transition:all 0.5s ease-in-out 0s;transition:all 0.5s ease-in-out
0s}
input[type=text]:focus,input[type=email]:focus,input[type=url]:focus,input[type=pass
word]:focus,input[type=search]:focus,textarea:focus{
background-color:#222;color:#f3f3f3;-moz-border-radius:0;-webkit-border-
radius:0;border-radius:0}
textarea{border:none;height:12.5em;line-height:1.5;resize:none;overflow:auto}
input[type=submit]{
background-color:#00aed7;color:#fff;font-size:0.875em;font-
weight:700;padding:0.714em 1.429em;-moz-border-radius:0.214em;-webkit-border-
radius:0.214em;border-radius:0.214em;-moz-transition:all 0.5s ease-in-out 0s;-ms-transition:all 0.5s
ease-in-out 0s;-o-transition:all 0.5s ease-in-out 0s;-webkit-transition:all 0.5s ease-in-out
0s;transition:all 0.5s ease-in-out 0s}
input[type=submit]:hover{cursor:pointer;background-color:#0085a3}
.content-header{background-color:rgba(248,248,248,0.95);position:relative}
a.logo{background-color:#151515;border-bottom:none;color:#fff;display:block;font-
size:1.75em;line-height:2.57143em;padding:0 0.643em 0 0.536em;width:1em}
a.logo span{left:-9999em;position:absolute;top:-9999em}
a.logo:hover{background-color:#00aed7}
.main-nav{position:relative}
.has-js .main-nav{display:none}
.main-nav ul{font-size:0.875em;line-height:3.5em;list-style:none;margin-
bottom:0;padding-left:0;text-align:center}
.main-nav li{border-bottom:1px solid #444;border-right:1px solid
#444;float:left;width:50%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-
box}
.main-nav li:nth-child(even){border-right:none}
.main-nav li:nth-child(3), .main-nav li:nth-child(4){border-bottom:none}
.main-nav li a{background-color:#151515;border-
bottom:none;color:#bbb;display:block}
.main-nav li a:hover{color:#fff}
.mobile-nav-toggle{font-size:0.875em;line-
height:5.143em;position:absolute;right:0;top:0}
.mobile-nav-toggle a{border:none;display:block;padding:0 1.071em}
.article header h1 a{border-bottom:none}
.portfolio-grid{padding:2.188em 0.875em 0.875em;position:relative}
.quarter-grid{background-color:#414f56;display:block;margin-
256
bottom:1.313em;position:relative}
.quarter-grid a{border:none;display:block}
.portfolio-button{font-size:0.875em;line-height:2.5;position:relative}
.portfolio-button a{background-color:#fff;padding:0 0.643em}
.content-footer{background-color:#f8f8f8;padding:1.313em
1.313em;position:relative;text-align:center}
.content-footer div{margin:0 auto;max-width:36.25em}
.content-footer ul{font-size:1em;line-height:1.5;list-style:none;margin:0 auto
1.5em;padding-left:0}
.content-footer li{display:inline-block;margin:0 0.1875em}
.content-footer li a{border-bottom:none;display:block;padding:0.5em}
.content-footer li span{left:-9999em;position:absolute;top:-9999em}
.content-footer p{margin-bottom:0}
@media only screen and ( min-width: 28.125em ){
a.logo{float:left;width:auto}
.has-js .main-nav{float:right;display:block !important}
.main-nav ul{line-height:5.143em;text-align:left}
.main-nav li{border-bottom:none;border-right:none;width:auto}
.main-nav li a{background-color:transparent;color:#151515;padding:0 1.071em}
.main-nav li a:hover{background-color:#151515;color:#fff}
.mobile-nav-toggle{display:none}
.portfolio-grid{padding:0}
.quarter-grid{float:left;margin-bottom:0;width:50%}
.portfolio-button{height:100%;left:0;line-height:1;opacity:0;position:absolute;text-
align:center;top:0;width:100%;-moz-transition:opacity 0.4s ease-in 0.05s;-o-transition:opacity 0.4s
ease-in 0.05s;-webkit-transition:opacity 0.4s ease-in 0.05s;transition:opacity 0.4s ease-in 0.05s}
.fader{opacity:1}
.portfolio-button a{background-color:rgba(255,255,255,0.9);height:100%;line-
height:1;left:0;padding:0;position:relative;width:100%;top:0}
.portfolio-button a:hover{color:#222}
.portfolio-button span{left:40px;position:absolute;top:40px}}
@media only screen and ( min-width: 36.313em ){
.center-column{padding:2.5em 2.5em 0.938em}
.search .center-column{padding-bottom:0.938em}
.page-header h1, .article-content h1{font-size:2em;letter-spacing:-0.031em}
.article-content h2{font-size:1.75em;letter-spacing:-0.036em}
.article-content h3{font-size:1.375em;letter-spacing:-0.0454546em;line-
height:1.364;margin-bottom:1.364em}
257
.article-content h4{font-size:1.188em;line-height:1.316;margin-
bottom:1.316em;margin-top:1.316em}
.article-content h5{font-size:1em;line-height:1.5625;margin-
bottom:1.5625em;margin-top:1.5625em}
.article-content h6{font-size:0.813em;line-height:1.538em;margin-
bottom:1.538em;margin-top:1.538em}
.article-content p, .article-content address{font-size:1em;line-height:1.5625;margin-
bottom:1.5625em}
.article-content p+h3{margin-top:1.364em}.article-content p+p{margin-top:-
1.5625em;text-indent:1.5625em}
.article-content ul, .article-content ol, .article-content dl{font-size:1em;line-
height:1.5625;margin-bottom:1.5625em}
.article-content ul{padding-left:0.938em}.article-content ol{padding-left:1.5625em}
.article-content ul ul, .article-content ol ul, .article-content ul ol, .article-content ol
ol{margin:0.625em 0}
.article-content ul + h3, .article-content ol + h3, .article-content dl+h3{margin-
top:1.364em}
.article-content table{font-size:1em;line-height:1.5625;margin-
bottom:1.5625em;margin-top:1.5625em}
.article-content caption{font-size:1.188em;line-height:1.316em;margin-
bottom:1.316em}
.article-content th, .article-content td{padding-right:0.625em}
.article-content table+h3{margin-top:1.364em}
label{font-size:0.813em;line-height:1.538;margin-bottom:0.385em}
input[type=text],input[type=email],input[type=url],input[type=password],input[type=s
earch],textarea{
font-size:1em;padding:0.625em;-moz-border-radius:0.188em;-webkit-border-
radius:0.188em;border-radius:0.188em}
textarea{line-height:1.5625}
a.logo{line-height:3.286em;padding:0 1.42857em}
.main-nav ul{line-height:6.571em}
.main-nav li a{padding:0 1.667em}
.article-content p + p.post-meta, .article-content p.fancy-intro + p, .article-content
p+p.post-teaser{margin-top:0;text-indent:0}
.article-content p.fancy-intro{font-size:1.375em;line-height:1.59091;margin-
bottom:1.13636em;word-spacing:-0.0454546em}
.article-content .lead-in{font-size:0.863636em;letter-spacing:0.0526316em}
.article-content .post-anchor p{font-size:1.1875em;line-height:1.31578947;margin-
bottom:1.31578947em}
.article-content .quote-format{padding:0}.single-format-quote .article-content
258
.quote-format{margin-bottom:6.25em}
.article-content .quote-format p+p{margin-top:0;text-indent:0}
.article-content .quote-format .large-quote{font-size:2em;margin-
bottom:0.313em;text-indent:-0.406em}
.article-content p.interview-question{font-size:1.375em;line-height:1.364;margin-
bottom:1.13636364em;word-spacing:-0.04545455em}
.article-content p.interview-question + p, .article-content p+p.interview-
question{margin-top:0;text-indent:0}
.article-content {font-size:0.813em;line-height:1.538;margin-
bottom:1.538em;margin-top:0.769em}
.article-content p+p{margin-top:0;text-indent:0}
.article-content {margin-bottom:1.875em;padding-left:0}
.portfolio-button{font-size:1.188em;letter-spacing:-0.053em}
.content-footer{padding:2.5em}
.content-footer ul{margin-bottom:2.5em}}
@media only screen and ( min-width: 62.5em ){
.center-column{padding:10.813em 0 2.188em}
.search .center-column{padding-bottom:7.188em}
.center-column:first-of-type, .center-column:first-of-type, .search .center-
column:first-of-type{padding-top:10.813em}
.search .center-column.search-success{border-bottom-width:0.625em;padding-
bottom:2.5em}
.content-header{left:0;position:fixed;top:0;width:100%;z-index:1000}
a.logo{line-height:4em}
.main-nav ul{line-height:8em}
.main-nav li a{padding:0 2.857em}
.portfolio-button{font-size:1.375em;letter-spacing:-0.045em}
.content-footer{padding:2.5em 0}}
@media only screen and ( min-width: 80em ){
.quarter-grid{width:33.333%}
}
@media only screen and ( min-width: 120em ){
.quarter-grid {float:left;width:25%}
.portfolio-button{font-size:1.75em;letter-spacing:-0.036em}}
259
15.2.3 PÁGINA INDEX.HTML
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<!--
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento de Sistemas - Unopar Arapiraca
- AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes - 2013
@Esta é a página de login. O usuário deve informar o login (máximo de 15 caracteres) e a senha
(min. de 7 e máx. de 15).
!-->
<head>
<link title="default" rel="stylesheet" type="text/css"
href="comum.css">
<script type="text/javascript">
function validarLogin() //Função p/ verificar valors do login e
senha
{
if (document.frmLogin.login.value.length == 0)
//verificando se o login foi informado
{
alert ("Informe o login");
return false;
}
else
{
if (document.frmLogin.senha.value.length ==
0) //verificando se a senha foi informada
{
alert ("Informe a senha");
return false;
}
else
{
if
((document.frmLogin.senha.value.length < 7) || (document.frmLogin.senha.value.length > 15))
//verifica os valores max e min da senha
{
260
alert("A senha deve ter no mínimo 07
caracteres e no máximo 15 caracteres.");
return false;
}
}
}
}
</script>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8">
<title>PinGO PHP</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="index.html"><i data-icon="P"
aria-hidden="true"></i><span>PinGO</span></a>
</header>
<article class="center-column">
<div class="article-content">
<!--
chamada a funcao p/ verificar o login !-->
<form id="frmLogin" name="frmLogin"
method="post" action="login.php" onsubmit="return validarLogin(); return false;">
<input type="hidden"
name="tipoform" id="tipoform" value='Acessar o Sistema' />
<br />
<p><strong>Login</strong>
<input type="text"
name="login" id="login" maxlength="15" placeholder="Insira o login..." />
</p>
<br />
<p><strong>Senha</strong>
<input type="password"
name="senha" id="senha" maxlength="15" placeholder="Mínimo: 07 caracteres" />
</p>
261
<center>
<input name="btnentrar"
type="submit" value="entrar" />
</center>
</form>
</div>
</article>
<footer class="content-footer">
<div>
<p> © 2013 <a
href="index.html">PinGO PHP</a></p>
</div>
</footer>
</body>
</html>
15.2.4 PÁGINA LOGIN.PHP
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento de Sistemas - Unopar Arapiraca
- AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes - 2013
@Esta classe é responsável pelos procedimentos relativos ao login do usuário. no sistema. A classe
cria um objeto Select p/ pesquisa por um usuário com o login e senha iguais ao passado pelo usuário.
Caso positivo, verifica se o valor retornado é idêntico ao valor passado, em positivo, passa os valores
retornados p/ a sessão do php a fim de personalizar o uso por parte do usuário. Depois é pesquisado
acerca do último acesso que o usuário fes (personalização). Por fim, é feito um registro na tabela de
logs, com o id do usuário, o evento ('Acessar o Sistema') e quando fez isso (date()) e ocorre um
redirecionamento. Se um dos casos der falso, o usuário é alertado que não foi feito o login e é
redirecionado p/ a página de login.
*/
class Login
{
public function Login($login, $senha, $evento)
{
try
{
require_once("crud/pesquisar.class.php");
262
$select = new Select();
$select->pesquisarUsuarioLogin($login,$senha);
if($select->registro)
{
if(($senha === (string) $select->registro-
>senha) && ($login === (string) $select->registro->login))
{
$_SESSION['nome'] = (string)
$select->registro->nome;
$_SESSION['login'] = (string)
$select->registro->login;
$_SESSION['senha'] = (string)
$select->registro->senha;
$_SESSION['id'] = (string) $select-
>registro->idusuario;
$_SESSION['email'] = (string)
$select->registro->email;
$_SESSION['perfil'] = (string)
$select->registro->perfil;
$_SESSION['telefone'] = (string)
$select->registro->telefone;
$_SESSION['grupo'] = 1;
$select-
>pesquisarUltimoAcesso($select->registro->idusuario);
$_SESSION['ultimoacesso'] =
$select->registro->datahora;
require_once("crud/inserir.class.php");
$insert = new Insert();
$insert-
>inserirLog($_SESSION['id'],$evento,date('d/m/Y H:i'));
263
header('Location: home.php');
}
else
{
echo("<script type='text/javascript'>
alert('Login e/ou Senha incorretos!'); location.href='index.html';</script>");
}
}
else
{
echo("<script type='text/javascript'>
alert('Inexiste Usu\u00e1rio com os dados informados!'); location.href='index.html';</script>");
}
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
}
session_start();
//Verifica se o login e senha foram informados
if((isset($_POST['login'])) && (isset($_POST['senha'])))
{
$login = new
Login($_POST['login'],$_POST['senha'],$_POST['tipoform']); //Instancia objeto da classe Login
}
else //Redireciona p/ a página de login
echo("<script type='text/javascript'> alert('Informe Login e/ou
Senha!'); location.href='index.html';</script>");
264
15.2.5 PÁGINA HOME.PHP
<?php
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="comum.css">
<script type="text/javascript">
function toggleContent()
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8">
<title>PinGO PHP</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="home.php"><i data-icon="P"
aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
265
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="inventario">Inventário</a></li>
<li><a
href="monitoramento">Monitoramento</a></li>
<li><a
href="administracao">Administração</a></li>
<li><a
href="relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<?php
echo
"<h2>Olá <strong>".$_SESSION['nome']."</strong>,</h2>";
print("<p>O <strong>Pingo
PHP</strong> é um sistema simples de monitoramento e gerenciamento de ativos de Rede.
Através
do <strong>Pingo PHP</strong>,
sua rede pode ser monitorada e gerenciada sem maiores complicações</p>");
print("<p>Composto de quatro
módulos: <a href='inventario'>Inventário</a>, <a
href='monitoramento'>Monitoramento</a>,
<a
href='administracao'>Administração</a> e <a href='relatorio'>Relatório</a>, que
dão amplo suporte
as suas necessidades.</p>");
print("<p>Tenha bom proveito do
<strong>Pingo PHP</strong>.</p>");
?>
</table>
</div>
266
</article>
<section class="portfolio-grid clear">
<div class='quarter-grid'>
<a href='monitoramento'>
<img
src='imagens/monitoramento.png' alt='Monitoramento'>
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'" onmouseout="this.className='portfolio-
button'">
<a href='monitoramento'
title='Monitoramento'>
<span>Monitoramento</span>
</a>
</div>
</div>
<div class='quarter-grid'>
<a href='inventario'>
<img
src='imagens/inventario.png' alt='Inventário'>
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'" onmouseout="this.className='portfolio-
button'">
<a href='inventario'
title='Inventário'>
<span>Inventário</span>
</a>
</div>
</div>
<div class='quarter-grid'>
<a href='administracao'>
<img
src='imagens/administracao.png' alt='Administração'>
</a>
267
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'" onmouseout="this.className='portfolio-
button'">
<a href='administracao'
title='Administração'>
<span>Administração</span>
</a>
</div>
</div>
<div class='quarter-grid'>
<a href='relatorio'>
<img
src='imagens/relatorio.png' alt='Relatório'>
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'" onmouseout="this.className='portfolio-
button'">
<a href='relatorio'
title='Relatório'>
<span>Relatório</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="inventario">Inventário</a></p></li>
<li><p><a
href="monitoramento">Monitoramento</a></p></li>
<li><p><a
href="administracao">Administração</a></p></li>
268
<li><p><a
href="relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo $_SESSION['nome']
?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.6 PÁGINA LOGOUT.PHP
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento de Sistemas - Unopar Arapiraca
- AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes - 2013
@Esta classe é responsável por realizar o logout do usuário. Ao clicar em "Sair", cria-se um objeto
Logout, onde seu método construtor cria um objeto Insert, a fim de inserir na tabela de logs a saída
do sistema, bem como esse método destrói a sessão criada. Por fim, é feito um redirecionamento p/ a
página de login.
*/
class Logout
269
{
public function Logout($usuario, $datahora, $evento)
{
require_once('crud/inserir.class.php');
$insert = new Insert();
$insert->inserirLog($usuario, $datahora, $evento);
session_destroy();
header('Location: index.html');
}
}
session_start();
$logout = new Logout($_SESSION['id'],'Sair do Sistema',date('d/m/Y H:i'));
15.2.7 INVENTÁRIO
15.2.7.1 Página index.php
<?php /*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento de Sistemas -
Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes - 2013
@Página inicial da seção "Inventário", são apresentadas as informações referentes
aos ativos(Estações,Nós de Rede e Dispositivos).
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
270
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Inventário</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
271
<li><a
href="index.php">Inventário</a></li>
<li><a
href="../monitoramento">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Inventário</h1>
<?php
require_once('../crud/pesquisar.class.php');
$select = new Select();
$select->pesquisarQuantEstacao();
print('<p>Quantidade de
Estações cadastradas:<b> '.$select->registro[0][0].'</b></p>');
$select->pesquisarQuantNoderede();
print('<p>Quantidade de Nós
de Rede cadastrados:<b> '.$select->registro[0][0].'</b></p>');
$select-
>pesquisarQuantDispositivo();
272
print('<p>Quantidade de Dispositivos
cadastrados:<b> '.$select->registro[0][0].'</b></p>');
print("<p>Para ver mais
informações sobre os ativos cadastrados,
clique em <a
href='../relatorio/relat_ativo.php'>Relatórios de Ativos</a>.</p>");
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a href='estacoes.php'>
<img
src="../imagens/estacao.png" alt="Estações">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a href='estacoes.php'
title='Estações'>
<span>Estações</span>
</a>
</div>
</div>
<div class='quarter-grid'>
<a href='noderede.php'>
<img
273
src='../imagens/noderede.png' alt='Nós de Rede'>
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a href='noderede.php'
title='Nós de Rede'>
<span>Nós de Rede</span>
</a>
</div>
</div>
<div class='quarter-grid'>
<a href='dispositivos.php'>
<img
src='../imagens/dispositivo.png' alt='Dispositivos'>
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href='dispositivos.php' title='Dispositivos'>
<span>Dispositivos</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
274
<li><p><a
href="index.php">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
275
15.2.7.2 Página dispositivos.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento de Sistemas -
Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes - 2013
@Nesta página, são apresentadas as informações referentes aos dispositivos.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
276
content="text/html; charset=utf-8">
<title>PinGO PHP - Inventário -
Dispositivos</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="index.php">Inventário</a></li>
<li><a
href="../monitoramento/">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h2>Dispositivos</h2>
<table>
<tr>
277
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>Tipo</td>
<td>Status</td>
</tr>
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisa por todos os
dispositivos
$select-
>pesquisarDispositivoTodos();
//Verifica se retornou
algum resultado
if($select->registro)
{
//Lista todos os
dispositivos
foreach ($select-
>registro as $registros)
{
print ("<tr>
<td>$registros[nome]</td>
278
<td>$registros[ip]</td>
<td>$registros[local]</td>
<td>$registros[tipo]</td>
<td>$registros[status]</td>
<tr>");
}
print("</table>");
}
else
{
print("</table><p>Nenhum registro encontrado</p>");
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<?php
279
//Verifica qual o perfil do Usuário ao acessar
esta página, alterando as opções apresentadas na seção de box. Cada macaco no
seu galho!
if($_SESSION['perfil'] === 'Administrador')
{
print('<div class="quarter-grid">
<a
href="cadastrardispositivo.php">
<img
src="../imagens/cadastrar_dispositivo.png" alt="Cadastrar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="cadastrardispositivo.php" title="Cadastrar Dispositivo">
<span>Cadastrar
Dispositivo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="alterardispositivo.php">
<img
src="../imagens/alterar_dispositivo.png" alt="Alterar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="alterardispositivo.php" title="Alterar Dispositivo">
<span>Alterar
280
Dispositivo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="excluirdispositivo.php">
<img
src="../imagens/excluir_dispositivo.png" alt="Excluir Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="excluirdispositivo.php" title="Excluir Dispositivo">
<span>Excluir
Dispositivo</span>
</a>
</div>
</div>
');
}
else
{
print('
<div class="quarter-grid">
<a href="estacoes.php">
<img
src="../imagens/estacao.png" alt="Estações">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
281
onmouseout="this.className=\'portfolio-button\'">
<a href="estacoes.php"
title="Estações">
<span>Estações</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="noderede.php">
<img
src="../imagens/noderede.png" alt="Nós de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a href="noderede.php"
title="Nós de Rede">
<span>Nós de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="dispositivos.php">
<img
src="../imagens/dispositivo.png" alt="Dispositivos">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
282
href="dispositivos.php" title="Dispositivos">
<span>Dispositivos</span>
</a>
</div>
</div>
');
}
?>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="index.php">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
283
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.7.3 Página cadastrardispositivo.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página, o usuário, através do formulário, cadastra um novo
dispositivo.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
284
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
function checarForm() //Função p/ validar os dados
inseridos no form. Os dados obrigatórios são nome, ip, local e status
{
if(document.frmcadastrardispositivo.nome.value.length == 0)
{
alert("Informe o Nome.");
return false;
}
else
{
if(document.frmcadastrardispositivo.ip.value.length == 0)
{
alert("Informe o IP.");
return false;
}
else
{
if
285
(document.frmcadastrardispositivo.local.value.length == 0)
{
alert ("Informe o
Local.");
return false;
}
else
{
if(document.frmcadastrardispositivo.status.selectedIndex == 0)
{
alert("Selecione
um Status.");
return false;
}
}
}
}
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>PinGO PHP - Inventário - Cadastrar Dispositivo</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="home.php"><i data-icon="P" aria-
hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
286
<a href="#" onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a href="index.php">Inventário</a></li>
<li><a href="../monitoramento">Monitoramento</a></li>
<li><a href="../administracao">Administração</a></li>
<li><a href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Cadastrar Dispositivo</h1>
<form name="frmcadastrardispositivo"
method="POST" action="../crud/cadastrar.php" onsubmit="return checarForm();
return false;">
<input name="tipoform" value="Cadastrar
Dispositivo" type="hidden" />
<label for="nome">Nome:</label>
<input name="nome" type="text" id="nome"
maxlength="30" tabindex="1" />
<br><br>
<label for="ip">Endereço IP:</label>
<input name="ip" type="text" id="ip"
maxlength="15" tabindex="2" />
<br><br>
<label for="local">Local:</label>
<input name="local" type="text" id="local"
maxlength="30" tabindex="3" />
<br></br>
<label for="tipodispositivo">Tipo:</label>
287
<select name="tipodispositivo"
id="tipodispositivo">
<option value="-------
">Selecione...</option>
<option
value="Impressora">Impressora</option>
<option
value="Câmera">Câmera</option>
<option
value="Sensor">Sensor</option>
<option
value="Telefone">VoIP</option>
<option
value="Outro">Outro</option>
</select>
<br><br>
<label for="status">Status:</label>
<select name="status" id="status">
<option value="-------
">Selecione...</option>
<option
value="Ativo">Ativo</option>
<option
value="Inativo">Inativo</option>
</select>
<br><br>
<input name="cadastrar" type="submit"
id="cadastrar" value="Cadastrar" tabindex="9" />
<input name="limpar" type="reset"
id="limpar" value="Limpar" tabindex="10" />
</form>
</div>
</article>
288
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="cadastrardispositivo.php">
<img
src="../imagens/cadastrar_dispositivo.png" alt="Cadastrar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrardispositivo.php" title="Cadastrar Dispositivo">
<span>Cadastrar
Dispositivo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="alterardispositivo.php">
<img
src="../imagens/alterar_dispositivo.png" alt="Alterar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterardispositivo.php" title="Alterar Dispositivo">
<span>Alterar
Dispositivo</span>
</a>
</div>
289
</div>
<div class="quarter-grid">
<a
href="excluirdispositivo.php">
<img
src="../imagens/excluir_dispositivo.png" alt="Excluir Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirdispositivo.php" title="Excluir Dispositivo">
<span>Excluir
Dispositivo</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="index.php">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
290
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.7.4 Página alterardispositivo.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página, o usuário seleciona qual dispositivo quer alterar e é
levado p/ a página de alteração.
*/
session_start();
291
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Inventário - Dispositivo
- Alterar Dispositivo</title>
</head>
<body>
<header class="content-header clear">
292
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="index.php">Inventário</a></li>
<li><a
href="../monitoramento">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Alterar Dispositivo</h1>
<h4>Selecione o Dispositivo a ser
alterado</h4>
<form name="frmalterardispositivo"
method="POST" action="verdispositivo.php">
<table>
<tr>
<td></td>
293
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>Tipo</td>
<td>Status</td>
</tr>
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquiso todos os
dispositivos
$select-
>pesquisarDispositivoTodos();
//Verifica se consulta
retornou alguma coisa
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Listo
todos os resultados
print ("<tr>
<td><input type='radio' name='id' value='$registros[id]' /></td>
294
<td>$registros[nome]</td>
<td>$registros[ip]</td>
<td>$registros[local]</td>
<td>$registros[tipo]</td>
<td>$registros[status]</td>
<tr>");
}
print("</table>
<input name='Alterar' type='submit' value='Alterar'></input>
</form>");
}
else
{
print("</table>
</form><p>Nenhum registro encontrado.</p>");
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
295
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="cadastrardispositivo.php">
<img
src="../imagens/cadastrar_dispositivo.png" alt="Cadastrar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrardispositivo.php" title="Cadastrar Dispositivo">
<span>Cadastrar
Dispositivo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="alterardispositivo.php">
<img
src="../imagens/alterar_dispositivo.png" alt="Alterar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterardispositivo.php" title="Alterar Dispositivo">
<span>Alterar
296
Dispositivo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="excluirdispositivo.php">
<img
src="../imagens/excluir_dispositivo.png" alt="Excluir Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirdispositivo.php" title="Excluir Dispositivo">
<span>Excluir
Dispositivo</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="index.php">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
297
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.7.5 Página verdispositivo.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
298
2013
@Nesta página, o usuário, através dum formulário, pode alterar os
dados do dispositivo selecionado.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
function checarForm() //Função p/ validar os dados
inseridos no form. Os dados obrigatórios são nome, ip e local
{
if(document.frmalterardispositivo.nome.value.length == 0)
{
299
alert("Informe o Nome.");
return false;
}
else
{
if(document.frmalterardispositivo.ip.value.length == 0)
{
alert("Informe o IP.");
return false;
}
else
{
if
(document.frmalterardispositivo.local.value.length == 0)
{
alert ("Informe o
Local.");
return false;
}
}
}
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Inventário - Dispositivo
- Alterar Dispositivo</title>
</head>
300
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="index.php">Inventário</a></li>
<li><a
href="../monitoramento">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Alterar Dispositivo</h1>
<h4>Altere os dados desejados</h4>
<form name="frmalterardispositivo"
method="POST" action="../crud/alterar.php" onsubmit="return checarForm(); return
false;">
301
<input name="tipoform"
value="Alterar Dispositivo" type="hidden" />
<?php
if(isset($_POST['id'])) //Verifica se algum dispositivo foi selecionado
{
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisa todos os dados do dispositivo selecionaod
$select->pesquisarDispositivoID($_POST['id']);
foreach($select->registro as $registro)
{
//Imprime form com os dados do dispositivo pesquisado
print ("<input name='id' id='id' type='hidden' value='$registro[id]' />
<label for='nome'>Nome:</label>
<input name='nome' type='text' id='nome' maxlength='30'
value='$registro[nome]' />
<br><br>
302
<label for='ip'>IP:</label>
<input name='ip' id='ip' type='text' maxlength='15' value='$registro[ip]'
/>
<br><br>
<label for='local'>Local:</label>
<input name='local' id='local' type='text' maxlength='30'
value='$registro[local]' />
<br><br>
<label for='tipodispositivo'>Tipo:</label>
<select name='tipodispositivo' id='tipodispositivo'>
<option value='$registro[tipo]'>Atual:$registro[tipo]</option>
<option value='Impressora'>Impressora</option>
<option value='Câmera'>Câmera</option>
<option value='Sensor'>Sensor</option>
<option value='Telefone'>VoIP</option>
<option value='Outro'>Outro</option>
</select>
<br><br>
303
<label for='status'>Status</label>
<select name='status' id='status'>
<option value='$registro[status]'>Atual:$registro[status]</option>
<option value='Ativo'>Ativo</option>
<option value='Inativo'>Inativo</option>
</select>
<br><br>");
}
print("<input name='Alterar' type='submit' value='Alterar' />
</form>");
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
else
{
print("</form>
304
<p>Nenhum Dispositivo foi selecionado.</p>");
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="cadastrardispositivo.php">
<img
src="../imagens/cadastrar_dispositivo.png" alt="Cadastrar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrardispositivo.php" title="Cadastrar Dispositivo">
<span>Cadastrar
Dispositivo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="alterardispositivo.php">
<img
src="../imagens/alterar_dispositivo.png" alt="Alterar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
305
onmouseout="this.className='portfolio-button'">
<a
href="alterardispositivo.php" title="Alterar Dispositivo">
<span>Alterar
Dispositivo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="excluirdispositivo.php">
<img
src="../imagens/excluir_dispositivo.png" alt="Excluir Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirdispositivo.php" title="Excluir Dispositivo">
<span>Excluir
Dispositivo</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="index.php">Inventário</a></p></li>
306
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
307
15.2.7.6 Página excluirdispositivo.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página, o usuário seleciona o dispositivo a ser excluído.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
308
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Inventário -
Dispositivos - Excluir Dispositivo</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="index.php">Inventário</a></li>
<li><a
href="../monitoramento/">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Excluir Dispositivo</h1>
309
<h4>Selecione o Dispositivo a ser
excluído</h4>
<form name="frmexcluirdispositivo"
method="POST" action="../crud/excluir.php">
<input name="tipoform"
value="Excluir Dispositivo" type="hidden" />
<h2>Dispositivos</h2>
<table>
<tr>
<td></td>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>Tipo</td>
<td>Status</td>
</tr>
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisa todos os
dispositivos
$select-
>pesquisarDispositivoTodos();
//Verifica se a consulta
retornou alguma coisa
310
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Imprime todos os resultados
print ("<tr>
<td><input type='radio' name='id' value='$registros[id]' /></td>
<td>$registros[nome]</td>
<td>$registros[ip]</td>
<td>$registros[local]</td>
<td>$registros[tipo]</td>
<td>$registros[status]</td>
<tr>");
}
print("</table>
<input
name='Excluir' type='submit' value='Excluir' />
</form>");
}
else
{
print("</table>
311
</form>
<p>Nenhum
registro encontrado.</p>");
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="cadastrardispositivo.php">
<img
src="../imagens/cadastrar_dispositivo.png" alt="Cadastrar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrardispositivo.php" title="Cadastrar Dispositivo">
<span>Cadastrar
Dispositivo</span>
</a>
</div>
312
</div>
<div class="quarter-grid">
<a
href="alterardispositivo.php">
<img
src="../imagens/alterar_dispositivo.png" alt="Alterar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterardispositivo.php" title="Alterar Dispositivo">
<span>Alterar
Dispositivo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="excluirdispositivo.php">
<img
src="../imagens/excluir_dispositivo.png" alt="Excluir Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirdispositivo.php" title="Excluir Dispositivo">
<span>Excluir
Dispositivo</span>
</a>
</div>
313
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="index.php">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
314
</body>
</html>
15.2.7.7 Página noderede.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página, são apresentadas as informações referentes aos
nós de rede.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
315
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Inventário - Nós
de Rede</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="index.php">Inventário</a></li>
<li><a
href="../monitoramento/">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
316
<div class="article-content">
<h2>Nós de Rede</h2>
<table>
<tr>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>Tipo</td>
<td>Marca</td>
<td>Modelo</td>
<td>Freq</td>
<td>DBI</td>
<td>Status</td>
</tr>
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisa por todos
nós de rede
$select-
>pesquisarNoderedeTodos();
//Verifica se a consulta
retornou alguma coisa
if($select->registro)
{
foreach ($select-
>registro as $registros)
317
{
//Imprime todos os resultados
print ("<tr>
<td>$registros[nome]</td>
<td>$registros[ip]</td>
<td>$registros[local]</td>
<td>$registros[tipo]</td>
<td>$registros[marca]</td>
<td>$registros[modelo]</td>
<td>$registros[freq]</td>
<td>$registros[dbi]</td>
<td>$registros[status]</td>
<tr>");
}
print("</table>");
}
else
{
print("</table>
318
<p>Nenhum
registro encontrado.</p>");
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<?php
//Verifica qual o perfil do Usuário ao acessar
esta página, alterando as opções apresentadas na seção de box. Cada macaco no
seu galho!
if($_SESSION['perfil'] === 'Administrador')
{
print('<div class="quarter-grid">
<a
href="cadastrarnoderede.php">
<img
src="../imagens/cadastrar_noderede.png" alt="Cadastrar Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="cadastrarnoderede.php" title="Cadastrar Nó de Rede">
<span>Cadastrar
319
Nó de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="alterarnoderede.php">
<img
src="../imagens/alterar_noderede.png" alt="Alterar Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="alterarnoderede.php" title="Alterar Nó de Rede">
<span>Alterar
Nó de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="excluirnoderede.php">
<img
src="../imagens/excluir_noderede.png" alt="Excluir Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="excluirnoderede.php" title="Excluir Nó de Rede">
<span>Excluir
320
Nó de Rede</span>
</a>
</div>
</div>');
}
else
{
print('
<div class="quarter-grid">
<a href="estacoes.php">
<img
src="../imagens/estacao.png" alt="Estações">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a href="estacoes.php"
title="Estações">
<span>Estações</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="noderede.php">
<img
src="../imagens/noderede.png" alt="Nós de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a href="noderede.php"
321
title="Nós de Rede">
<span>Nós de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="dispositivos.php">
<img
src="../imagens/dispositivo.png" alt="Dispositivos">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="dispositivos.php" title="Dispositivos">
<span>Dispositivos</span>
</a>
</div>
</div>
');
}
?>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="index.php">Inventário</a></p></li>
322
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.7.8 Página alterarnoderede.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
323
2013
@Nesta página, o usuário seleciona qual nó de rede quer alterar e é
levado p/ a página de alteração.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Inventário - Nó
de Rede - Alterar Nó de Rede</title>
324
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="index.php">Inventário</a></li>
<li><a
href="../monitoramento">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Alterar Nó de Rede</h1>
<h4>Selecione o Nó de Rede
a ser alterado</h4>
<form name="frmalterarnoderede"
325
method="POST" action="vernoderede.php">
<table>
<tr>
<td></td>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>Tipo</td>
<td>Marca</td>
<td>Modelo</td>
<td>Freq</td>
<td>DBI</td>
<td>Status</td>
</tr>
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisa por todas
nós de rede
$select-
>pesquisarNoderedeTodos();
//Verifica se retornou
alguma coisa
if($select->registro)
{
foreach ($select-
326
>registro as $registros)
{
//Lista
todos os resultados
print ("<tr>
<td><input type='radio' name='id'
value='$registros[id]'></input></td>
<td>$registros[nome]</td>
<td>$registros[ip]</td>
<td>$registros[local]</td>
<td>$registros[tipo]</td>
<td>$registros[marca]</td>
<td>$registros[modelo]</td>
<td>$registros[freq]</td>
<td>$registros[dbi]</td>
<td>$registros[status]</td>
<tr>");
}
print("</table>
<input
name='Alterar' type='submit' value='Alterar'></input>
327
</form>");
}
else
{
print("</table>
</form>
<p>Nenhum
registro encontrado.</p>");
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="cadastrarnoderede.php">
<img
src="../imagens/cadastrar_noderede.png" alt="Cadastrar Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrarnoderede.php" title="Cadastrar Nó de Rede">
328
<span>Cadastrar
Nó de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="alterarnoderede.php">
<img
src="../imagens/alterar_noderede.png" alt="Alterar Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterarnoderede.php" title="Alterar Nó de Rede">
<span>Alterar
Nó de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="excluirnoderede.php">
<img
src="../imagens/excluir_noderede.png" alt="Excluir Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirnoderede.php" title="Excluir Nó de Rede">
329
<span>Excluir
Nó de Rede</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="index.php">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
330
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.7.9 Página vernoderede.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página, o usuário, através dum formulário, pode alterar os
dados do nó de rede selecionado.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
331
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
function checarForm() //Função p/ validar os dados
inseridos no form. Os dados obrigatórios são nome, ip e local
{
if(document.frmalterarnoderede.nome.value.length == 0)
{
alert("Informe o Nome.");
return false;
}
else
{
if(document.frmalterarnoderede.ip.value.length == 0)
{
alert("Informe o IP.");
return false;
}
else
{
if
(document.frmalterarnoderede.local.value.length == 0)
{
alert ("Informe o
332
Local.");
return false;
}
}
}
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Inventário - Alterar
Nó de Rede</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="index.php">Inventário</a></li>
<li><a
href="../monitoramento">Monitoramento</a></li>
<li><a
333
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Alterar Nó de Rede</h1>
<h4>Altere os dados desejados</h4>
<form name="frmalterarnoderede"
method="POST" action="../crud/alterar.php" onsubmit="return checarForm(); return
false;">
<input name="tipoform"
value="Alterar No de Rede" type="hidden" />
<?php
if(isset($_POST['id'])) //Verifica se algum nó de rede foi selecionado
{
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisa todas as informações do nó de rede selecionado
$select->pesquisarNoderedeID($_POST['id']);
334
foreach($select->registro as $registro)
{
//Imprime form com os dados obtidos na consulta
print ("
<input name='id'
id='id' value='$registro[id]' type='hidden' />
<br><br>
<label
for='nome'>Nome:</label>
<input
name='nome' type='text' id='nome' maxlength='30' value='$registro[nome]' />
<br><br>
<label
for='ip'>IP:</label>
<input name='ip'
id='ip' type='text' maxlength='15' value='$registro[ip]' />
<br><br>
<label
for='local'>Local:</label>
<input
name='local' id='local' type='text' maxlength='30' value='$registro[local]' />
<br><br>
<label
for='tipono'>Tipo</label>
<select
name='tipono' id='tipono'>
<option value='$registro[tipo]'>Atual: $registro[tipo]</option>
<option value='Roteador'>Roteador</option>
335
<option value='Switch'>Switch</option>
<option value='Hub'>Hub</option>
<option value='Bridge'>Bridge</option>
</select>
<br></br>
<label
for='marca'>Marca</label>
<select
name='marca' id='marca'>
<option value='$registro[marca]'>$registro[marca]</option>
<option value='Cisco'>Cisco</option>
<option value='Linksys'>LinkSys</option>
<option value='D-Link'>D-Link</option>
<option value='TP-Link'>TP-Link</option>
</select>
<br></br>
<label
for='modelo'>Modelo:</label>
<input
name='modelo' id='modelo' type='text' maxlength='15' value='$registro[modelo]' />
<br><br>
<label
for='freq'>Frequência</label>
<select
name='freq' id='freq'>
336
<option value='$registro[freq]'>Atual: $registro[freq]</option>
<option value='5Mhz'>5Mhz</option>
<option value='7Mhz'>7Mhz</option>
<option value='10Mhz'>10Mhz</option>
<option value='12Mhz'>12Mhz</option>
<option value='15Mhz'>15Mhz</option>
<option value='20Mhz'>20Mhz</option>
</select>
<br></br>
<label
for='dbi'>DBI:</label>
<select
name='dbi' id='dbi'>
<option value='$registro[dbi]'>Atual: $registro[dbi]</option>
<option value='2DBI'>2DBI</option>
<option value='4DBI'>4DBI</option>
<option value='6DBI'>6DBI</option>
<option value='8DBI'>8DBI</option>
<option value='10DBI'>10DBI</option>
<option value='12DBI'>12DBI</option>
337
<option value='15DBI'>15DBI</option>
</select>
<br></br>
<label
for='status'>Status</label>
<select
name='status' id='status'>
<option
value='$registro[status]'>Atual: $registro[status]</option>
<option
value='Ativo'>Ativo</option>
<option
value='Inativo'>Inativo</option>
</select>
<br><br>");
}
print("<input name='alterar' type='submit' value='Alterar' /></form>");
}
catch
(Exception $e)
{
echo "Erro: " . $getMessage();
}
}
else
{
338
print("</form>
<p>Nenhum Nó de Rede foi selecionado.</p>");
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="cadastrarnoderede.php">
<img
src="../imagens/cadastrar_noderede.png" alt="Cadastrar Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrarnoderede.php" title="Cadastrar Nó de Rede">
<span>Cadastrar
Nó de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="alterarnoderede.php">
<img
src="../imagens/alterar_noderede.png" alt="Alterar Nó de Rede">
</a>
<div class="portfolio-button"
339
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterarnoderede.php" title="Alterar Nó de Rede">
<span>Alterar
Nó de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="excluirnoderede.php">
<img
src="../imagens/excluir_noderede.png" alt="Excluir Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirnoderede.php" title="Excluir Nó de Rede">
<span>Excluir
Nó de Rede</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
340
href="index.php">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
341
15.2.7.10 Página excluirnoderede.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página, o usuário seleciona o nó de rede a ser excluído.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
342
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Inventário - Nó
de Rede - Excluir Nó de Rede</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="index.php">Inventário</a></li>
<li><a
href="../monitoramento">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
343
<h1>Excluir Nó de
Rede</h1>
<h4>Selecione o Nó de Rede
a ser excluído</h4>
<form name="frmexcluirnoderede"
method="POST" action="../crud/excluir.php">
<input name="tipoform"
value="Excluir No de Rede" type="hidden"></input>
<table>
<tr>
<td></td>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>Tipo</td>
<td>Marca</td>
<td>Modelo</td>
<td>Freq</td>
<td>DBI</td>
<td>Status</td>
</tr>
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisa por todos os
nós de rede
344
$select-
>pesquisarNoderedeTodos();
//Verifica se retorou
algum resultado
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Imprime todos os resultados
print ("<tr>
<td><input type='radio' name='id'
value='$registros[id]'></input></td>
<td>$registros[nome]</td>
<td>$registros[ip]</td>
<td>$registros[local]</td>
<td>$registros[tipo]</td>
<td>$registros[marca]</td>
<td>$registros[modelo]</td>
<td>$registros[freq]</td>
<td>$registros[dbi]</td>
345
<td>$registros[status]</td>
<tr>");
}
print("</table>
<input
name='excluir' type='submit' value='Excluir'></input>
</form>");
}
else
{
print("</table>
</form>
<p>Nenhum
registro encontrado.</p>");
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="cadastrarnoderede.php">
346
<img
src="../imagens/cadastrar_noderede.png" alt="Cadastrar Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrarnoderede.php" title="Cadastrar Nó de Rede">
<span>Cadastrar
Nó de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="alterarnoderede.php">
<img
src="../imagens/alterar_noderede.png" alt="Alterar Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterarnoderede.php" title="Alterar Nó de Rede">
<span>Alterar
Nó de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="excluirnoderede.php">
347
<img
src="../imagens/excluir_noderede.png" alt="Excluir Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirnoderede.php" title="Excluir Nó de Rede">
<span>Excluir
Nó de Rede</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="index.php">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
348
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.7.11 Página cadastrarnoderede.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página, o usuário, através do formulário, cadastra um novo
nó de rede.
*/
session_start();
?>
<!DOCTYPE html>
349
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
function checarForm() //Função p/ validar os dados
inseridos no form. Os dados obrigatórios são nome, ip, local e status
{
if(document.frmcadastrarnoderede.nome.value.length == 0)
{
alert("Informe o Nome.");
return false;
}
else
{
if(document.frmcadastrarnoderede.ip.value.length == 0)
{
alert("Informe o IP.");
return false;
350
}
else
{
if
(document.frmcadastrarnoderede.local.value.length == 0)
{
alert ("Informe o
Local.");
return false;
}
else
{
if(document.frmcadastrarnoderede.status.selectedIndex == 0)
{
alert("Selecione
um Status.");
return false;
}
}
}
}
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>PinGO PHP - Inventário - Cadastrar Nó de
Rede</title>
</head>
<body>
351
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-icon="P" aria-
hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#" onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a href="index.php">Inventário</a></li>
<li><a href="../monitoramento">Monitoramento</a></li>
<li><a href="../administracao">Administração</a></li>
<li><a href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Cadastrar Nó de Rede</h1>
<form id="frmcadastrarnoderede"
name="frmcadastrarnoderede" method="POST" action="../crud/cadastrar.php"
onsubmit="return checarForm(); return false;">
<input name="tipoform" id="tipo"
value="Cadastrar No de Rede" type="hidden" />
<label for="nome">Nome:</label>
<input name="nome" type="text" id="nome"
maxlength="30" tabindex="1" />
<br><br>
<label for="ip">Endereço IP:</label>
<input name="ip" type="text" id="ip"
maxlength="15" tabindex="2" />
352
<br><br>
<label for="local">Local:</label>
<input name="local" type="text" id="local"
maxlength="30" tabindex="3" />
<br><br>
<label for="tipono">Tipo</label>
<select name="tipono" id="tipono">
<option value="-------
">Selecione...</option>
<option
value="Roteador">Roteador</option>
<option
value="Switch">Switch</option>
<option
value="Hub">Hub</option>
<option
value="Bridge">Bridge</option>
</select>
<br></br>
<label for="marca">Marca</label>
<select name="marca" id="marca">
<option value="-------
">Selecione...</option>
<option
value="Cisco">Cisco</option>
<option
value="Linksys">LinkSys</option>
<option value="D-Link">D-
Link</option>
<option value="TP-Link">TP-
Link</option>
</select>
<br></br>
<label for="modelo">Modelo: </label>
353
<input name="modelo" id="modelo"
type="text" maxlength="15" />
<br><br>
<label
for="frequencia">Frequência</label>
<select name="frequencia" id="frequencia">
<option value="-------
">Selecione...</option>
<option
value="5Mhz">5Mhz</option>
<option
value="7Mhz">7Mhz</option>
<option
value="10Mhz">10Mhz</option>
<option
value="12Mhz">12Mhz</option>
<option
value="15Mhz">15Mhz</option>
<option
value="20Mhz">20Mhz</option>
</select>
<br></br>
<label for="dbi">DBI</label>
<select name="dbi" id="dbi">
<option value="-------
">Selecione...</option>
<option
value="2DBI">2DBI</option>
<option
value="4DBI">4DBI</option>
<option
value="6DBI">6DBI</option>
<option
value="8DBI">8DBI</option>
354
<option
value="10DBI">10DBI</option>
<option
value="12DBI">12DBI</option>
<option
value="15DBI">15DBI</option>
</select>
<br></br>
<label for="status">Status</label>
<select name="status" id="status">
<option value="-------
">Selecione...</option>
<option
value="Ativo">Ativo</option>
<option
value="Inativo">Inativo</option>
</select>
<br></br>
<input name="cadastrar" type="submit"
id="cadastrar" value="Cadastrar" tabindex="9" />
<input name="limpar" type="reset"
id="limpar" value="Limpar" tabindex="10" />
</form>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="cadastrarnoderede.php">
<img
src="../imagens/cadastrar_noderede.png" alt="Cadastrar Nó de Rede">
</a>
355
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrarnoderede.php" title="Cadastrar Nó de Rede">
<span>Cadastrar
Nó de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="alterarnoderede.php">
<img
src="../imagens/alterar_noderede.png" alt="Alterar Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterarnoderede.php" title="Alterar Nó de Rede">
<span>Alterar
Nó de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="excluirnoderede.php">
<img
src="../imagens/excluir_noderede.png" alt="Excluir Nó de Rede">
</a>
356
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirnoderede.php" title="Excluir Nó de Rede">
<span>Excluir
Nó de Rede</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="index.php">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
357
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.7.12 Página estacoes.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página, são apresentadas as informações referentes às
estações.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
358
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Inventário -
Estações</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
359
href="index.php">Inventário</a></li>
<li><a
href="../monitoramento/">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Estações</h1>
<table>
<tr>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>SO</td>
<td>HD</td>
<td>CPU</td>
<td>RAM</td>
<td>Status</td>
</tr>
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
360
//Pesquisa por todas as
estações
$select-
>pesquisarEstacaoTodos();
//Verifica se a pesquisa
retornou alguma coisa
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Imprime
todos os resultados
print ("<tr>
<td>$registros[nome]</td>
<td>$registros[ip]</td>
<td>$registros[local]</td>
<td>$registros[so]</td>
<td>$registros[hd]</td>
<td>$registros[cpu]</td>
<td>$registros[ram]</td>
<td>$registros[status]</td>
<tr>");
361
}
print("</table>");
}
else
{
print("</table>
</form>
<p>Nenhum
registro encontrado.</p>");
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<?php
//Verifica qual o perfil do Usuário ao acessar
esta página, alterando as opções apresentadas na seção de box. Cada macaco no
seu galho!
if($_SESSION['perfil'] === 'Administrador')
{
print('<div class="quarter-grid">
<a
362
href="cadastrarestacao.php">
<img
src="../imagens/cadastrar_estacao.png" alt="Cadastrar Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="cadastrarestacao.php" title="Cadastrar Estação">
<span>Cadastrar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="alterarestacao.php">
<img
src="../imagens/alterar_estacao.png" alt="Alterar Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="alterarestacao.php" title="Alterar Estação">
<span>Alterar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="excluirestacao.php">
<img
363
src="../imagens/excluir_estacao.png" alt="Excluir Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="excluirestacao.php" title="Excluir Estação">
<span>Excluir
Estação</span>
</a>
</div>
</div>
');
}
else
{
print('
<div class="quarter-grid">
<a href="estacoes.php">
<img
src="../imagens/estacao.png" alt="Estações">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a href="estacoes.php"
title="Estações">
<span>Estações</span>
</a>
</div>
</div>
364
<div class="quarter-grid">
<a href="noderede.php">
<img
src="../imagens/noderede.png" alt="Nós de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a href="noderede.php"
title="Nós de Rede">
<span>Nós de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="dispositivos.php">
<img
src="../imagens/dispositivo.png" alt="Dispositivos">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="dispositivos.php" title="Dispositivos">
<span>Dispositivos</span>
</a>
</div>
</div>
');
}
365
?>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="index.php">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
366
</html>
15.2.7.13 Página cadastrarestacao.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página, o usuário, através do formulário, cadastra uma nova
estação.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
367
function checarForm() //Função p/ validar os dados
inseridos no form. Os dados obrigatórios são nome, ip, local e status
{
if(document.frmcadastrarestacao.nome.value.length == 0)
{
alert("Informe o Nome.");
return false;
}
else
{
if(document.frmcadastrarestacao.ip.value.length == 0)
{
alert("Informe o IP.");
return false;
}
else
{
if
(document.frmcadastrarestacao.local.value.length == 0)
{
alert ("Informe o
Local.");
return false;
}
else
{
if(document.frmcadastrarestacao.status.selectedIndex == 0)
368
{
alert("Selecione
um Status.");
return false;
}
}
}
}
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>PinGO PHP - Inventário - Cadastrar
Estação</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-icon="P" aria-
hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#" onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a href="index.php">Inventário</a></li>
<li><a href="../monitoramento">Monitoramento</a></li>
<li><a href="../administracao">Administração</a></li>
<li><a href="../relatorio">Relatório</a></li>
</ul>
</nav>
369
</header>
<article class="center-column">
<div class="article-content">
<h1>Cadastrar Estação</h1>
<form id="frmcadastrarestacao"
name="frmcadastrarestacao" method="POST" action="../crud/cadastrar.php"
onsubmit="return checarForm(); return false;">
<input name="tipoform" value ="Cadastrar
Estacao" type="hidden" />
<label for="nome">Nome:</label>
<input name="nome" type="text" id="nome"
maxlength="30" tabindex="1" />
<br><br>
<label for="ip">Endereço IP:</label>
<input name="ip" type="text" id="ip"
maxlength="15" tabindex="2" />
<br><br>
<label for="local">Local:</label>
<input name="local" type="text" id="local"
maxlength="30" tabindex="3" />
<br><br>
<label for="cpu">Processador: </label>
<input name="cpu" id="cpu" type="text"
maxlength="15" tabindex="7" />
<br></br>
<label for="so">Sistema
Operacional</label>
<select name="so" id="so">
<option value="-------
">Selecione...</option>
<option value="Windows
370
XP">Windows XP</option>
<option value="Windows
7">Windows 7</option>
<option value="Windows
8">Windows 8</option>
<option value="Windows
Server">Windows Server</option>
<option
value="Ubuntu">Ubuntu</option>
<option
value="Debian">Debian</option>
<option
value="Slackware">Slackware</option>
<option
value="Solaris">Solaris</option>
<option value="MAC OS">Mac
OS</option>
<option
value="Backtrack">Backtrack</option>
</select>
<br></br>
<label for="hd">Disco Rígido</label>
<select name="hd" id="hd">
<option value="-------
">Selecione...</option>
<option
value="80GB">80GB</option>
<option
value="120GB">120GB</option>
<option
value="320GB">320GB</option>
<option
value="500GB">500GB</option>
<option
371
value="1TB">1TB</option>
<option
value="2TB">2TB</option>
</select>
<br><br>
<label for="ram">Memória
RAM</label>
<select name="ram" id="ram">
<option value="-------
">Selecione...</option>
<option
value="256MB">256MB</option>
<option
value="512MB">512MB</option>
<option
value="1GB">1GB</option>
<option
value="2GB">2GB</option>
<option
value="4GB">4GB</option>
<option
value="8GB">8GB</option>
<option
value="1TB">1TB</option>
</select>
<br></br>
<label for="status">Status</label>
<select name="status" id="status">
<option value="-------
">Selecione...</option>
<option
value="Ativo">Ativo</option>
<option
value="Inativo">Inativo</option>
372
</select>
<br><br>
<input name="cadastrar" type="submit"
id="cadastrar" value="Cadastrar" tabindex="9" />
<input name="limpar" type="reset"
id="limpar" value="Limpar" tabindex="10" />
</form>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="cadastrarestacao.php">
<img
src="../imagens/cadastrar_estacao.png" alt="Cadastrar Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrarestacao.php" title="Cadastrar Estação">
<span>Cadastrar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="alterarestacao.php">
<img
src="../imagens/alterar_estacao.png" alt="Alterar Estação">
</a>
373
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterarestacao.php" title="Alterar Estação">
<span>Alterar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="excluirestacao.php">
<img
src="../imagens/excluir_estacao.png" alt="Excluir Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirestacao.php" title="Excluir Estação">
<span>Excluir
Estação</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
374
href="index.php">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
375
15.2.7.14 Página alterarestacao.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página, o usuário seleciona qual estação quer alterar e é
levado p/ a página de alteração.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
376
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Inventário -
Estação - Alterar Estação</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="index.php">Inventário</a></li>
<li><a
href="../monitoramento">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
377
<article class="center-column">
<div class="article-content">
<h1>Alterar
Estação</h1>
<h4>Escolha a Estação
a ser alterada</h4>
<form name="frmalterarestacao"
method="POST" action="verestacao.php">
<table>
<tr>
<td></td>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>SO</td>
<td>HD</td>
<td>CPU</td>
<td>RAM</td>
<td>Status</td>
</tr>
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisa por todas as
estações
$select-
378
>pesquisarEstacaoTodos();
//Verifica se a consulta
retornou alguma coisa
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Lista
todos os resultados
print ("<tr>
<td><input type='radio' name='id'
value='$registros[id]'></input></td>
<td>$registros[nome]</td>
<td>$registros[ip]</td>
<td>$registros[local]</td>
<td>$registros[so]</td>
<td>$registros[hd]</td>
<td>$registros[cpu]</td>
<td>$registros[ram]</td>
<td>$registros[status]</td>
<tr>");
379
}
print("</table>
<input name='Alterar' type='submit' value='Alterar'></input>
</form>");
}
else
{
print("</table>
</form>
<p>Nenhum
registro encontrado.</p>");
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="cadastrarestacao.php">
<img
src="../imagens/cadastrar_estacao.png" alt="Cadastrar Estação">
</a>
380
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrarestacao.php" title="Cadastrar Estação">
<span>Cadastrar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="alterarestacao.php">
<img
src="../imagens/alterar_estacao.png" alt="Alterar Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterarestacao.php" title="Alterar Estação">
<span>Alterar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="excluirestacao.php">
<img
src="../imagens/excluir_estacao.png" alt="Excluir Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
381
onmouseout="this.className='portfolio-button'">
<a
href="excluirestacao.php" title="Excluir Estação">
<span>Excluir
Estação</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="index.php">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
382
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.7.15 Página verestacao.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página, o usuário, através dum formulário, pode alterar os
dados da estação selecionada.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
383
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
function checarForm() //Função p/ validar os dados
inseridos no form. Os dados obrigatórios são nome, ip e local
{
if(document.frmalterarestacao.nome.value.length == 0)
{
alert("Informe o Nome.");
return false;
}
else
{
if(document.frmalterarestacao.ip.value.length == 0)
{
alert("Informe o IP.");
return false;
}
else
{
if
(document.frmalterarestacao.local.value.length == 0)
384
{
alert ("Informe o
Local.");
return false;
}
}
}
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Inventário - Cadastrar
Estação</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="index.php">Inventário</a></li>
<li><a
385
href="../monitoramento">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Alterar
Estação</h1>
<h4>Altere os dados desejados</h4>
<form name="frmalterarestacao"
method="POST" action="../crud/alterar.php" onsubmit="return checarForm(); return
false;">
<input name="tipoform"
value="Alterar Estacao" type="hidden" />
<?php
if(isset($_POST['id'])) //Verifica se alguma estação foi selecionada
{
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
386
//Pesquisar todas as informações da estação selecionada
$select->pesquisarEstacaoID($_POST['id']);
foreach($select->registro as $registro)
{
//Imprime form com os dados da estação selecionada
print ("
<input name='id' id='id' value='$registro[id]' type='hidden' />
<br><br>
<label for='nome'>Nome:</label>
<input name='nome' type='text' id='nome' maxlength='30'
value='$registro[nome]' />
<br><br>
<label for='telefone'>IP:</label>
<input name='ip' id='ip' type='text' maxlength='15'
value='$registro[ip]' />
<br><br>
<label for='local'>Local:</label>
<input name='local' id='local' type='text' maxlength='30'
387
value='$registro[local]' />
<br><br>
<label for='cpu'>Processador:</label>
<input name='cpu' id='cpu' type='text' maxlength='15'
value='$registro[cpu]' />
<br><br>
<label for='so'>Sistema Operacional</label>
<select name='so' id='so'>
<option value='$registro[so]'>Atual: $registro[so]</option>
<option value='Windows XP'>Windows XP</option>
<option value='Windows 7'>Windows 7</option>
<option value='Windows 8'>Windows 8</option>
<option value='Windows Server'>Windows
Server</option>
<option value='Ubuntu'>Ubuntu</option>
<option value='Debian'>Debian</option>
<option value='Slackware'>Slackware</option>
<option value='Solaris'>Solaris</option>
388
<option value='Mac OS'>Mac OS</option>
<option value='Backtrack'>Backtrack</option>
</select>
<br><br>
<label for='hd'>Disco Rígido</label>
<select name='hd' id='hd'>
<option value='$registro[hd]'>Atual:
$registro[hd]</option>
<option value='80GB'>80GB</option>
<option value='120GB'>120GB</option>
<option value='320GB'>320GB</option>
<option value='500GB'>500GB</option>
<option value='1TB'>1TB</option>
<option value='2TB'>2TB</option>
</select>
<br><br>
<label for='ram'>Memória RAM:</label>
<select name='ram' id='ram'>
389
<option value='$registro[ram]'>Atual:
$registro[ram]</option>
<option value='256MB'>256MB</option>
<option value='512MB'>512MB</option>
<option value='1GB'>1GB</option>
<option value='2GB'>2GB</option>
<option value='4GB'>4GB</option>
<option value='8GB'>8GB</option>
<option value='1TB'>1TB</option>
</select>
<br></br>
<label for='status'>Status</label>
<select name='status' id='status'>
<option value='$registro[status]'>Atual:
$registro[status]</option>
<option value='Ativo'>Ativo</option>
<option value='Inativo'>Inativo</option>
</select>
390
<br><br>");
}
print("<input name='alterar' type='submit' value='Alterar' /></form>");
}
catch(Exception $e)
{
echo "Erro: " . $e->getMessage();
}
}
else
{
print("</form>
<p>Nenhuma Estação foi selecionada.</p>");
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="cadastrarestacao.php">
<img
391
src="../imagens/cadastrar_estacao.png" alt="Cadastrar Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrarestacao.php" title="Cadastrar Estação">
<span>Cadastrar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="alterarestacao.php">
<img
src="../imagens/alterar_estacao.png" alt="Alterar Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterarestacao.php" title="Alterar Estação">
<span>Alterar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="excluirestacao.php">
<img
src="../imagens/excluir_estacao.png" alt="Excluir Estação">
</a>
392
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirestacao.php" title="Excluir Estação">
<span>Excluir
Estação</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="index.php">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
393
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.7.16 Página excluirestacao.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página, o usuário seleciona a estação a ser excluída.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
394
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Inventário -
Estação - Excluir Estação</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
395
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="index.php">Inventário</a></li>
<li><a
href="../monitoramento">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Excluir
Estação</h1>
<h4>Selecione a
Estação a ser excluída</h4>
<form name="frmexcluirestacao"
method="POST" action="../crud/excluir.php">
<input name="tipoform"
value="Excluir Estacao" type="hidden"></input>
<table>
<tr>
<td></td>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
396
<td>SO</td>
<td>HD</td>
<td>CPU</td>
<td>RAM</td>
<td>Status</td>
</tr>
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisa todas as
estações
$select-
>pesquisarEstacaoTodos();
//Verifica se retornou
alguma coisa
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Imprime todos os resultados
print ("<tr>
<td><input type='radio' name='id'
value='$registros[id]'></input></td>
397
<td>$registros[nome]</td>
<td>$registros[ip]</td>
<td>$registros[local]</td>
<td>$registros[so]</td>
<td>$registros[hd]</td>
<td>$registros[cpu]</td>
<td>$registros[ram]</td>
<td>$registros[status]</td>
<tr>");
}
print("</table>
<input
name='Excluir' type='submit' value='Excluir'></input>
</form>");
}
else
{
print("</table>
</form>
<p>Nenhum
registro encontrado</p>");
}
398
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="cadastrarestacao.php">
<img
src="../imagens/cadastrar_estacao.png" alt="Cadastrar Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrarestacao.php" title="Cadastrar Estação">
<span>Cadastrar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="alterarestacao.php">
<img
src="../imagens/alterar_estacao.png" alt="Alterar Estação">
399
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterarestacao.php" title="Alterar Estação">
<span>Alterar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="excluirestacao.php">
<img
src="../imagens/excluir_estacao.png" alt="Excluir Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirestacao.php" title="Excluir Estação">
<span>Excluir
Estação</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
400
href="index.php">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
401
15.2.8 ADMINISTRAÇÃO
15.2.8.1 Página index.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Página inicial da Administração, apresenta alguns dados
referentes à administração e lista as opções conforme o perfi do usuário logado..
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
402
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP -
Administração</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="../monitoramento">Monitoramento</a></li>
<li><a
href="index.php">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
403
<div class="article-content">
<h1>Administração</h1>
<?php
require_once('../crud/pesquisar.class.php');
$select = new Select();
//Faz várias pesquisar p/ apresentar
alguns dados sobre os usuários cadastrados no sistema
$select->pesquisarQuantUsuario();
print('<p>Quantidade de
Usuários cadastrados:<b> '.$select->registro[0][0].'</b></p>');
$select-
>pesquisarQuantAdministrador();
print('<p>Quantidade de
Usuários com perfil Administrador:<b> '.$select->registro[0][0].'</b></p>');
$select->pesquisarQuantOperador();
print('<p>Quantidade de
Usuários com perfil Operador:<b> '.$select->registro[0][0].'</b></p>');
print("<p>Para ver mais
informações sobre os usuários,
clique em <a
href='../relatorio/relat_usuario.php'>Relatórios de Usuário</a>.</p>");
404
//Agora vamos buscar todos os
usuários do sistema
$select->pesquisarUsuarioTodos();
print ("<h3>Usuários</h3>
<table>
<tr>
<td>Nome</td>
<td>Perfil</td>
<td>Email</td>
<td>Telefone</td>
</tr>");
if($select->registro)
{
//Lista todos os usuários
foreach ($select-
>registro as $usuario)
{
print ("<tr>
<td>$usuario[nome]</td>
<td>$usuario[perfil]</td>
<td>$usuario[email]</td>
<td>$usuario[telefone]</td>
</tr>");
}
print("</table>");
405
}
else
{
print("</table>
<p>Não há
usuários cadastrados</p>");
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<?php
//Verifica qual o perfil do Usuário ao acessar
esta página, alterando as opções apresentadas na seção de box. Cada macaco no
seu galho!
if($_SESSION['perfil'] === 'Administrador')
{
print('
<div id="quarter-grid" class="quarter-grid">
<a
href="cadastrarusuario.php">
<img
src="../imagens/cadastrar_usuario.png" alt="Cadastrar Usuário">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
406
href="cadastrarusuario.php" title="Cadastrar Usuário">
<span>Cadastrar
Usuário</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="alterarusuario.php">
<img
src="../imagens/alterar_usuario.png" alt="Alterar Usuário">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="alterarusuario.php" title="Alterar Usuário">
<span>Alterar
Usuário</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="excluirusuario.php">
<img
src="../imagens/excluir_usuario.png" alt="Excluir Usuário">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="excluirusuario.php" title="Excluir Usuário">
<span>Excluir
407
Usuário</span>
</a>
</div>
</div>');
}
else
{
print('<div class="quarter-grid">
<a href="meus_dados.php">
<img
src="../imagens/meus_dados.png" alt="Meus Dados">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="meus_dados.php" title="Meus Dados">
<span>Meus
Dados</span>
</a>
</div>
</div>');
}
?>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
408
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="index.php">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.8.2 Página cadastrarusuario.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
409
2013
@Nesta página, o usuário (Administrador), através dum formulário,
pode inserir novos usuários no sistema.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
function checarForm() //Função p/ validar dados do
formulário. Os dados obrigatórios são nome, perfil, login e senha (min.7 e max.15).
{
if(document.frmcadastrarusuario.nome.value.length == 0)
{
alert("Informe o Nome.");
410
return false;
}
else
{
if(document.frmcadastrarusuario.perfil.selectedIndex == 0)
{
alert("Selecione um perfil.");
return false;
}
else
{
if
(document.frmcadastrarusuario.login.value.length == 0)
{
alert ("Informe o login");
return false;
}
else
{
if
(document.frmcadastrarusuario.senha.value.length == 0)
{
alert ("Informe a
senha");
return false;
}
else
{
if
411
((document.frmcadastrarusuario.senha.value.length < 7) ||
(document.frmcadastrarusuario.senha.value.length > 15))
{
alert("A
senha deve ter no m\u00ednimo 07 caracteres e no m\u00e1ximo 15 caracteres.");
return
false;
}
}
}
}
}
}
function mascara(o,f) //As Funções abaixo realizam
a máscara p/ o telefone. Ex.:(XX) 9999-9999
{
v_obj=o
v_fun=f
setTimeout("execmascara()",1)
}
function execmascara()
{
v_obj.value=v_fun(v_obj.value)
}
function itelefone(v)
{
v=v.replace(/\D/g,"") //Remove
tudo o que não é dígito
v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca
parênteses em volta dos dois primeiros dígitos
v=v.replace(/(\d{4})(\d)/,"$1-$2") //Coloca
412
hífen entre o quarto e o quinto dígitos
return v
}
</script>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8">
<title>PinGO PHP - Administração |
Cadastrar Usuário</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario/">Inventário</a></li>
<li><a
href="../monitoramento/">Monitoramento</a></li>
<li><a
href="index.php">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
413
</header>
<article class="center-column">
<div class="article-content">
<h2>Cadastrar Usuário</h2>
<form name="frmcadastrarusuario"
id="frmcadastrarusuario" method="POST" action="../crud/cadastrar.php"
onsubmit="return checarForm(); return false;">
<input name="tipoform"
value="Cadastrar Usuario" type='hidden' />
<label
for="nome">Nome:</label>
<input name="nome"
type="text" id="nome" maxlength="50" tabindex="1" />
<br><br>
<label
for="perfil">Perfil</label>
<select id="perfil"
name="perfil" tabindex="2">
<option value="--
-----">...</option>
<option
value="Administrador">Administrador</option>
<option
value="Operador">Operador</option>
</select>
<br></br>
<label
for="telefone">Telefone:</label>
<input name="telefone"
id="telefone" type="text" maxlength="15" tabindex="3"
onkeypress="mascara(this,itelefone)" />
<br><br>
<label
414
for="email">Email:</label>
<input name="email"
type="text" maxlength="50" tabindex="4" />
<br><br>
<label
for="login">Login:</label>
<input id="login"
name="login" type="text" maxlength="15" tabindex="5" />
<br></br>
<label
for="senha">Senha:</label>
<input id="senha"
name="senha" type="password" maxlength="15" tabindex="6" />
<br></br>
<input name="cadastrar"
type="submit" id="cadastrar" value="Cadastrar" tabindex="7" />
<input name="limpar"
type="reset" id="limpar" value="Limpar" tabindex="8" />
</form>
</div>
</article>
<section class="portfolio-grid clear">
<div id="quarter-grid" class="quarter-grid">
<a
href="cadastrarusuario.php">
<img
src="../imagens/cadastrar_usuario.png" alt="Cadastrar Usuário">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrarusuario.php" title="Cadastrar Usuário">
415
<span>Cadastrar
Usuário</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="alterarusuario.php">
<img
src="../imagens/alterar_usuario.png" alt="Alterar Usuário">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterarusuario.php" title="Alterar Usuário">
<span>Alterar
Usuário</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="excluirusuario.php">
<img
src="../imagens/excluir_usuario.png" alt="Excluir Usuário">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirusuario.php" title="Excluir Usuário">
<span>Excluir
Usuário</span>
416
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="index.php">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
417
</body>
</html>
15.2.8.3 Página alterarusuario.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página, o usuário (Administrador) escolhe qual usuário ele
deseja alterar. Obs.: O usuário logado não pode se auto-escolher via essa página,
para isso, ele deve ir em 'Meus Dados'.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
418
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Administração |
Alterar Usuário</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario/">Inventário</a></li>
<li><a
href="../monitoramento/">Monitoramento</a></li>
<li><a
href="index.php">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
419
<article class="center-column">
<div class="article-content">
<h2>Alterar Usuário</h2>
<h4>Escolha o usuário a ser
alterado</h4>
<form name="frmalterarusuario"
method="POST" action="verusuario.php">
<table>
<tr>
<td></td>
<td>Nome</td>
<td>Perfil</td>
<td>Email</td>
<td>Telefone</td>
</tr>
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisar todos os usuários, menos o que está logado.
//O usuário logado só pode alterar seus dados na página
'meus_dados.php
420
$select->pesquisarUsuarioTodosExceto($_SESSION['id']);
if($select->registro)
{
//Lista todos os usuários, exceto o usuário já logado.
foreach ($select->registro as $registros)
{
print ("<tr>
<td><input type='radio' id='idusuario'
name='idusuario' value='$registros[idusuario]' /></td>
<td>$registros[nome]</td>
<td>$registros[perfil]</td>
<td>$registros[email]</td>
<td>$registros[telefone]</td>
</tr>");
}
421
print("</table>
<input name='alterar' type='submit' value='Alterar' />
</form>");
}
else
{
print("</table>
</form>
<p>Nenhum registro encontrado.</p>");
}
}
catch
(Exception $erro)
{
echo "Erro:" . $erro->getMessage();
}
?>
</div>
</article>
422
<section class="portfolio-grid clear">
<div id="quarter-grid" class="quarter-grid">
<a
href="cadastrarusuario.php">
<img
src="../imagens/cadastrar_usuario.png" alt="Cadastrar Usuário">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrarusuario.php" title="Cadastrar Usuário">
<span>Cadastrar
Usuário</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="alterarusuario.php">
<img
src="../imagens/alterar_usuario.png" alt="Alterar Usuário">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterarusuario.php" title="Alterar Usuário">
<span>Alterar
Usuário</span>
</a>
</div>
</div>
423
<div class="quarter-grid">
<a href="excluirusuario.php">
<img
src="../imagens/excluir_usuario.png" alt="Excluir Usuário">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirusuario.php" title="Excluir Usuário">
<span>Excluir
Usuário</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="index.php">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
424
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.8.4 Página verusuario.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página, o usuário (Administrador) informa os novos dados p/
o usuário selecionado. Obs.: O usuário logado não pode alterar seus dados via essa
página,
para isso, ele deve ir em 'Meus Dados'.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
425
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
function checarForm() //Função p/ validar os dados
do informados no formulário. Os dados obrigatórios nesta página é somente o nome.
{
if(document.frmalterarusuario.nome.value.length == 0)
{
alert("Informe o Nome.");
return false;
}
}
function mascara(o,f) //As Funções abaixo realizam
a máscara p/ o telefone. Ex.:(XX) 9999-9999
{
v_obj=o
v_fun=f
setTimeout("execmascara()",1)
}
426
function execmascara()
{
v_obj.value=v_fun(v_obj.value)
}
function itelefone(v)
{
v=v.replace(/\D/g,"") //Remove
tudo o que não é dígito
v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca
parênteses em volta dos dois primeiros dígitos
v=v.replace(/(\d{4})(\d)/,"$1-$2") //Coloca
hífen entre o quarto e o quinto dígitos
return v
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Administração |
Alterar Usuário</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
427
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario/">Inventário</a></li>
<li><a
href="../monitoramento/">Monitoramento</a></li>
<li><a
href="index.php">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h2>Alterar Usuário</h2>
<h4>Altere os dados desejados</h4>
<form name="frmalterarusuario"
method="POST" action="../crud/alterar.php" onsubmit="return checarForm(); return
false;">
<input name="tipoform"
value="Alterar Usuario" type='hidden' />
<?php
if(isset($_POST['idusuario'])) //Verifica se algum usuário foi
selecionado
{
try
{
428
require_once("../crud/pesquisar.class.php");
$select =
new Select();
$select-
>pesquisarUsuarioID($_POST['idusuario']); //Pesquisa os dados no BD p/ o usuário
selecionado
foreach($select->registro as $registro)
{
//Monsta um formulário com os dados do usuário selecionado.
print ("
<input name='id' id='id' type='hidden' value='$registro[idusuario]' />
<br><br>
<label for='nome'>Nome:</label>
<input name='nome' type='text' id='nome' maxlength='30'
value='$registro[nome]' tabindex='1' />
<br><br>
<label for='perfil'>Perfil</label>
<select name='perfil' id='perfil' tabindex='2'>
<option
value='$registro[perfil]'>Atual: $registro[perfil]</option>
429
<option value='Administrador'>Administrador</option>
<option value='Operador'>Operador</option>
</select>
<br><br>
<label for='telefone'>Telefone:</label>
<input name='telefone' id='telefone' type='text' maxlength='30'
value='$registro[telefone]' tabindex='3' onkeypress='mascara(this,itelefone)' />
<br><br>
<label for='email'>Email:</label>
<input name='email' id='email' type='text' maxlength='30'
value='$registro[email]' tabindex='4' />
<br><br>
");
}
print("<input name='Alterar' type='submit' value='Alterar' tabindex='5'
/>
</form>");
}
catch(Exception
$e)
430
{
echo
"Erro: " . $e->getMessage();
}
}
else
{
print("</form>
<p>Nenhum
usuario foi selecionado.</p>");
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div id="quarter-grid" class="quarter-grid">
<a
href="cadastrarusuario.php">
<img
src="../imagens/cadastrar_usuario.png" alt="Cadastrar Usuário">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrarusuario.php" title="Cadastrar Usuário">
<span>Cadastrar
Usuário</span>
</a>
</div>
</div>
431
<div class="quarter-grid">
<a href="alterarusuario.php">
<img
src="../imagens/alterar_usuario.png" alt="Alterar Usuário">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterarusuario.php" title="Alterar Usuário">
<span>Alterar
Usuário</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="excluirusuario.php">
<img
src="../imagens/excluir_usuario.png" alt="Excluir Usuário">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirusuario.php" title="Excluir Usuário">
<span>Excluir
Usuário</span>
</a>
</div>
</div>
</section>
432
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="index.php">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.8.5 Página excluirusuario.php
<?php
433
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página, o usuário (Administrador) selecione o usuário que
ele deseja excluir.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
434
<title>PinGO PHP - Administração |
Excluir Usuário</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario/">Inventário</a></li>
<li><a
href="../monitoramento/">Monitoramento</a></li>
<li><a
href="index.php">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h2>Excluir Usuário</h2>
<h4>Escolha o usuário a ser
excluído</h4>
435
<form name="frmexcluirusuario"
method="POST" action="../crud/excluir.php">
<input name="tipoform"
value="Excluir Usuario" type='hidden' />
<table>
<tr>
<td></td>
<td>Nome</td>
<td>Perfil</td>
<td>Email</td>
<td>Telefone</td>
</tr>
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisar todos os usuários, menos o que está logado.
//Afinal, ele não pode se auto-excluir, pois quem vai continuar
usando o sistema?
$select->pesquisarUsuarioTodosExceto($_SESSION['id']);
436
if($select->registro)
{
//Lista os usuários
foreach ($select->registro as $registros)
{
print ("<tr>
<td><input type='radio' id='idusuario'
name='idusuario' value='$registros[idusuario]' /></td>
<td>$registros[nome]</td>
<td>$registros[perfil]</td>
<td>$registros[email]</td>
<td>$registros[telefone]</td>
</tr>");
}
print("</table>
<input name='excluir' type='submit' value='Excluir' />
</form>");
437
}
else
{
print("</table>
</form>
<p>Nenhum registro encontrado.</p>");
}
}
catch
(Exception $erro)
{
echo "Erro:" . $erro->getMessage();
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div id="quarter-grid" class="quarter-grid">
<a
438
href="cadastrarusuario.php">
<img
src="../imagens/cadastrar_usuario.png" alt="Cadastrar Usuário">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrarusuario.php" title="Cadastrar Usuário">
<span>Cadastrar
Usuário</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="alterarusuario.php">
<img
src="../imagens/alterar_usuario.png" alt="Alterar Usuário">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterarusuario.php" title="Alterar Usuário">
<span>Alterar
Usuário</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="excluirusuario.php">
<img
439
src="../imagens/excluir_usuario.png" alt="Excluir Usuário">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirusuario.php" title="Excluir Usuário">
<span>Excluir
Usuário</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="index.php">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
440
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.8.6 Página meus_dados.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página, o usuário, através dum formulário, pode alterar seus
próprios dados.
*/
441
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
function checarForm() //Função p/ validar dados do
formulário. Os dados obrigatórios são nome, login e senha (min.7 e max.15).
{
if(document.frmalterarusuario.nome.value.length == 0)
{
alert("Informe o Nome.");
return false;
}
else
442
{
if
(document.frmalterarusuario.login.value.length == 0)
{
alert ("Informe o login");
return false;
}
else
{
if
(document.frmalterarusuario.senha.value.length == 0)
{
alert ("Informe a
senha");
return false;
}
else
{
if
((document.frmalterarusuario.senha.value.length < 7) ||
(document.frmalterarusuario.senha.value.length > 15))
{
alert("A senha
deve ter no m\u00ednimo 07 caracteres e no m\u00e1ximo 15 caracteres.");
return false;
}
}
}
}
}
</script>
443
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Administração |
Alterar Usuário</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario/">Inventário</a></li>
<li><a
href="../monitoramento/">Monitoramento</a></li>
<li><a
href="index.php">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h2>Alterar Dados Pessoais</h2>
444
<h4>Altere os dados desejados</h4>
<form name="frmalterarusuario"
method="POST" action="../crud/alterar.php" onsubmit="return checarForm(); return
false;">
<input name="tipoform"
value="Alterar Usuario Logado" type='hidden' />
<?php
if(isset($_SESSION['id'])) //Verifica se há algum usuário logado
{
//Monsta
um form com os dados do usuário atual
print ("
<input name='id' id='id' type='hidden' value='$_SESSION[id]' />
<br><br>
<label for='nome'>Nome:</label>
<input name='nome' type='text' id='nome' maxlength='30'
value='$_SESSION[nome]' />
<br><br>
<label for='perfil'>Perfil</label>
<select name='perfil' id='perfil'>
<option
value='$_SESSION[perfil]'>Atual: $_SESSION[perfil]</option>
<option value='Administrador'>Administrador</option>
445
<option value='Operador'>Operador</option>
</select>
<br><br>
<label
for='telefone'>Telefone:</label>
<input name='telefone' id='telefone' type='text' maxlength='30'
value='$_SESSION[telefone]' />
<br><br>
<label for='email'>Email:</label>
<input name='email' id='email' type='text' maxlength='30'
value='$_SESSION[email]' />
<br><br>
<label for='login'>Login:</label>
<input name='login' id='login' type='text' maxlength='15'
value='$_SESSION[login]' />
<br
/><br />
<label for='senha'>Senha:</label>
<input name='senha' id='senha' type='password' maxlength='15'
value='$_SESSION[senha]' />
<br
/><br />
446
<input name='Alterar' type='submit' value='Alterar' />
</form>
");
}
else
{
print("</form>
<p>Nenhum
usuario foi selecionado.</p>");
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<?php
//Verifica qual o perfil do Usuário ao acessar
esta página, alterando as opções apresentadas na seção de box. Cada macaco no
seu galho!
if($_SESSION['perfil'] === 'Administrador')
{
print('<div id="quarter-grid"
class="quarter-grid">
<a
href="cadastrarusuario.php">
<img
src="../imagens/cadastrar_usuario.png" alt="Cadastrar Usuário">
</a>
<div class="portfolio-button"
447
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="cadastrarusuario.php" title="Cadastrar Usuário">
<span>Cadastrar
Usuário</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="alterarusuario.php">
<img
src="../imagens/alterar_usuario.png" alt="Alterar Usuário">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="alterarusuario.php" title="Alterar Usuário">
<span>Alterar
Usuário</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="excluirusuario.php">
<img
src="../imagens/excluir_usuario.png" alt="Excluir Usuário">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
448
<a
href="excluirusuario.php" title="Excluir Usuário">
<span>Excluir
Usuário</span>
</a>
</div>
</div>');
}
else
{
print('<div class="quarter-grid">
<a href="meus_dados.php">
<img
src="../imagens/meus_dados.png" alt="Meus Dados">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="meus_dados.php" title="Meus Dados">
<span>Meus
Dados</span>
</a>
</div>
</div>');
}
?>
</section>
<footer class="content-footer">
<div>
<ul>
449
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="index.php">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
450
15.2.9 MONITORAMENTO
15.2.9.1 Arquivo pingo.class.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Classe que realiza o monitoramento, criando, conectando,
enviando e lendo os sockets. Caso necessário, pode-se utilizar da execução de
comandos no sistema
usando o bom e velho Ping.
*/
class Pingo
{
function monitorar($ativo) //Recebendo o endereço IP a
ser monitorado
{
return $this->enviar($ativo);
}
public static function enviar($ip_ativo)
{
if (extension_loaded('sockets')) //Verifica se a
extensão de socket está configurada no PHP
{
return self::enviarSocket($ip_ativo);
}
else //Caso não esteja carregada, vai-se monitorar
através da execução de comandos no sistema com o ping.
451
{
return self::execSend($ip_ativo);
}
}
protected static function enviarSocket($ip)
{
//Fazendo o pacote a ser enviado no socket
$tipo = "\x08";
$codigo = "\x00";
$checksum = "\x00\x00";
$identificador = "\x00\x00";
$seqNumero = "\x00\x00";
$dado = "Pingo";
$pacote =
$tipo.$codigo.$checksum.$identificador.$seqNumero.$dado; //cria o pacote a ser
enviando pelo socket.
$checksum =
self::calcularICMPChecksum($pacote); //Calcular o checksum (código de verificação
do pacote ICMP a ser enviado pelo socket)
$pacote =
$tipo.$codigo.$checksum.$identificador.$seqNumero.$dado; //Atualiza o pacote com
o novo valor do checksum
//Cria o socket. AF_INET = informa que usará o
protocolo TCP/IP; SOCK_RAW = especifica que o socket é orientado ao protoclo.
ICMP 1 = timeout
$icmp_socket = @socket_create(AF_INET,
SOCK_RAW, 1);
if (!$icmp_socket) //Veririca se o socket não foi
452
criado. Caso verdade, vamos usar o ping convencional.
{
self::execSend($ip);
}
else
{ //Configurando o socket, especificando,
principalmente suas coordenadas de tempo.
socket_set_option($icmp_socket,
SOL_SOCKET, SO_RCVTIMEO, array('sec' => 1, 'usec' => 0));
}
//Verifica se não foi possível conectar o socket
criado ao ip informado. Caso verdade, retorna o aviso.
if (!@socket_connect($icmp_socket, $ip, null))
{
return 'Falha na Conexão.';
//<br
/><span><small>".socket_strerror(socket_last_error($icmp_socket))."</small></span
>";
}
else
{
//$startTime = microtime(true);
//Com a cnexão obtida, envia, através do
socket, o pacote antes definido, bem como informa o tamanho do pacote - strlen().
$send = @socket_send($icmp_socket,
$pacote, strLen($pacote), 0);
//Caso o envio não tenha ocorrido, returna o
aviso e encerra a conexão do socket.
if ($send === false)
{
453
return 'Falha no Envio dos Dados';
@socket_close($icmp_socket);
//socket_strerror(socket_last_error($icmp_socket));
}
//Caso conseguiu enviar, é hora de lermos
no socket, informando qual socket, bem como o tamanho do dado a ser lido.
//Caso positivo, retorna o aviso e encerra a
conexão.
elseif (@socket_read($icmp_socket, 512))
{
return "ONLINE";
//.round(microtime(true) - $startTime, 4) . " segundos";
@socket_close($icmp_socket);
}
//Se não for possível ler no socket, retorna o
aviso,limpa os erros do socket e fechamos a conexao.
else
{
return 'OFFLINE'; //<br><small>Falha
na Leitura dos Dados</small><br>";
socket_clear_error($icmp_socket);
@socket_close($icmp_socket);
}
}
}
//Método alternativo p/ monitoramento através do velho
'ping'
protected static function execSend($host)
{
$command = escapeshellcmd('ping -n 3 ' . $host);
454
return exec($command, $result, $returnCode);
}
//Calcula o código de verificação do pacote ICMP
protected static function calcularICMPChecksum($dado)
{
if (strlen($dado)%2)
$dado .= "\x00";
$bit = unpack('n*', $dado);
$sum = array_sum($bit);
while ($sum >> 16)
$sum = ($sum >> 16) + ($sum & 0xffff);
return pack('n*', ~$sum);
}
}
15.2.9.2 Página index.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Página inicial da seção "Monitoramento".
*/
session_start();
?>
455
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Monitoramento</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
456
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="index.php">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Monitoramento</h1>
<h2><i>Uma nova forma de
Monitorar...</i></h2>
<p>O <strong>Pingo PHP</strong>
utiliza o conceito de <strong>sockets</strong> para monitorar os ativos da sua
rede.
Os sockets facilitam o
monitoramento, pois são mais simples de serem implementados.</p>
<p>Dentre as opções de
monitoramento, há dois tipos: <a
href="monitoramento_grupo.php">Monitoramento por Grupo</a>
ou Monitoramento por Ativos,
podendo ser por <a
href="monitoramento_estacao.phph">Estação</a>,
<a
href="monitoramento_noderede.php">Nó de Rede</a> ou <a
457
href="monitoramento_dispositivo.php">Dispositivo</a>.</p>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a href="monitoramento.php">
<img
src="../imagens/monitoramento.png" alt="Monitoramento">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento.php" title="Monitoramento">
<span>Monitoramento</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="ultimas_ocorrencias.php">
<img
src="../imagens/ultimas_ocorrencias.png" alt="Últimas Ocorrências">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="ultimas_ocorrencias.php" title="Últimas Ocorrências">
458
<span>Últimas Ocorrências</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="grupos.php">
<img
src="../imagens/grupo.png" alt="Grupos">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a href="grupos.php"
title="Grupos">
<span>Grupos</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="index.php">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
459
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.9.3 Página monitoramento.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
460
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Página que apresenta as opções refeerentes ao monitoramento.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Monitoramento</title>
</head>
461
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="index.php">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Monitoramento</h1>
<h2>Ativos</h2>
<h4>Selecione o que deseja
monitorar</h4>
<p><a
href="monitoramento_grupo.php">Monitoramento por Grupo</a></p>
<p><a
462
href="monitoramento_estacao.php">Monitoramento por
Estação</a></p>
<p><a
href="monitoramento_noderede.php">Monitoramento por Nó de
Rede</a></p>
<p><a
href="monitoramento_dispositivo.php">Monitoramento por Dispostivo</a></p>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="monitoramento_grupo.php">
<img
src="../imagens/monitorar_grupo.png" alt="Monitorar Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_grupo.php" title="Monitorar Grupo">
<span>Monitorar
Grupo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_estacao.php">
<img
463
src="../imagens/monitorar_estacao.png" alt="Monitorar Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_estacao.php" title="Monitorar Estação">
<span>Monitorar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_noderede.php">
<img
src="../imagens/monitorar_noderede.png" alt="Monitorar Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_noderede.php" title="Monitorar Nó de Rede">
<span>Monitorar
Nó de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_dispositivo.php">
<img
464
src="../imagens/monitorar_dispositivo.png" alt="Monitorar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_dispositivo.php" title="Monitorar Dispositivo">
<span>Monitorar
Dispositivo</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="index.php">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
465
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.9.4 Página monitoramento_grupo.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página o usuário pode selecionar um grupo específico a ser
monitorado.
*/
session_start();
466
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Monitoramento</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
467
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="index.php">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Monitoramento</h1>
<h2>Grupos</h2>
<h4>Selecione o Grupo a ser
monitorado</h4>
<form name="frmmonitorargrupo"
method="POST" action="monitorar_grupo.php">
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisa todos os
468
grupos
$select-
>pesquisarGrupoTodos();
foreach ($select-
>registro as $registros)
{
print ("
<input type='radio' name='idgrupo' value='$registros[id]'></input>
<input name='nomegrupo' value='$registros[nome]'
type='hidden'> <strong>
$registros[nome]</strong> </input>
<table>
<tr>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
</tr>");
$select2 = new
Select();
//Pesquisa as
estações do grupo
$select2-
469
>pesquisarEstacaoGrupo($registros['id']);
foreach($select2-
>registro as $estacao)
{
if(isset($estacao['id']))
{
print("<tr>
<td>$estacao[nome]</td>
<td>$estacao[ip]</td>
<td>$estacao[local]</td>
</tr>");
}
}
//Pesquisa os
nós de rede do grupo
$select2-
>pesquisarNoderedeGrupo($registros['id']);
foreach($select2-
>registro as $norede)
{
if(isset($norede['id']))
{
print("<tr>
470
<td>$norede[nome]</td>
<td>$norede[ip]</td>
<td>$norede[local]</td>
</tr>");
}
}
//Pesquisa por
todos os dispositivos do grupo
$select2-
>pesquisarDispositivoGrupo($registros['id']);
foreach($select2-
>registro as $dispositivo)
{
if(isset($dispositivo['id']))
{
print("<tr>
<td>$dispositivo[nome]</td>
<td>$dispositivo[ip]</td>
<td>$dispositivo[local]</td>
</tr>");
}
471
}
echo "</table>";
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
<input name='Monitorar'
type='submit' value='Monitorar'></input>
</form>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="monitoramento_grupo.php">
<img
src="../imagens/monitorar_grupo.png" alt="Monitorar Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_grupo.php" title="Monitorar Grupo">
<span>Monitorar
Grupo</span>
</a>
472
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_estacao.php">
<img
src="../imagens/monitorar_estacao.png" alt="Monitorar Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_estacao.php" title="Monitorar Estação">
<span>Monitorar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_noderede.php">
<img
src="../imagens/monitorar_noderede.png" alt="Monitorar Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_noderede.php" title="Monitorar Nó de Rede">
<span>Monitorar
Nó de Rede</span>
</a>
473
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_dispositivo.php">
<img
src="../imagens/monitorar_dispositivo.png" alt="Monitorar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_dispositivo.php" title="Monitorar Dispositivo">
<span>Monitorar
Dispositivo</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="index.php">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
474
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.9.5 Página monitorar_grupo.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
475
2013
*/
session_start(); //Iniciando a sessão para personalizar o uso
conforme os dados do usuário.
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent()
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<meta http-equiv="refresh"
content="20;url=monitorar_grupo.php"/>
<title>PinGO PHP - Monitoramento</title>
</head>
<body>
<header class="content-header clear">
476
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="index.php">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Monitoramento</h1>
<h2>Grupos</h2>
<?php
if(isset($_POST['idgrupo']))
{
$_SESSION['grupo'] =
$_POST['idgrupo'];
477
monitorar($_SESSION['grupo']);
}
else
{
monitorar($_SESSION['grupo']);
}
function monitorar($grupo)
{
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
// $cron = new Cron();
$select-
>pesquisarGrupoID($grupo);
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
("<h4>$registros[nome]</h4>
<table>
478
<tr>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>Situação</td>
</tr>");
require_once("pingo.class.php");
$pingo =
new Pingo();
// $select2
= new Select();
$select-
>pesquisarEstacaoGrupo($registros['id']);
if($select-
>registro)
{
foreach($select->registro as $estacao)
{
print ("<tr>
479
<td>$estacao[nome]</td>
<td>$estacao[ip]</td>
<td>$estacao[local]</td>
<td>");
if($estacao['status'] == 'Ativo')
{
$situacao = $pingo->monitorar($estacao['ip']);
if($situacao !== 'ONLINE')
{
echo "<font color='red'>".$situacao."</font>";
require_once('../crud/inserir.class.php');
$insert = new Insert();
$insert-
>inserirOcorrenciaEstacao($estacao['id'],date('d/m/Y H:i'));
480
$quant = $select-
>pesquisarQuantOcorrenciaEstacao($estacao['id'],date('d/m/Y'));
if($quant[0][0] > 7)
{
echo "<br /><span><small>Excedeu o
limite.</small></span>";
}
}
else
echo "<font color='blue'>".$situacao."</font>";
}
else
{
481
echo '-------';
}
print("</td></tr>");
}
}
else
{
print("<p>Não há estações no
grupo.</p>");
}
$select-
>pesquisarNoderedeGrupo($registros['id']);
if($select-
>registro)
{
foreach($select->registro as $noderede)
{
print ("<tr>
<td>$noderede[nome]</td>
482
<td>$noderede[ip]</td>
<td>$noderede[local]</td>
<td>");
if($noderede['status'] == 'Ativo')
{
$situacao = $pingo->monitorar($noderede['ip']);
if($situacao !== 'ONLINE')
{
echo "<font color='red'>".$situacao."</font>";
require_once('../crud/inserir.class.php');
$insert = new Insert();
$insert-
>inserirOcorrenciaNoderede($noderede['id'],date('d/m/Y H:i'));
483
$quant = $select-
>pesquisarQuantOcorrenciaNoderede($noderede['id'],date('d/m/Y'));
if($quant[0][0] > 7)
{
echo "<br /><span><small>Excedeu o
limite.</small></span>";
}
}
else
echo "<font color='blue'>".$situacao."</font>";
}
else
{
echo '-------';
484
}
print("</td></tr>");
}
}
else
{
print("<p>Não há nós de rede no grupo.</p>");
}
$select-
>pesquisarDispositivoGrupo($registros['id']);
if($select-
>registro)
{
foreach($select->registro as $dispositivo)
{
print ("<tr>
<td>$dispositivo[nome]</td>
<td>$dispositivo[ip]</td>
<td>$dispositivo[local]</td>
485
<td>");
if($dispositivo['status'] === 'Ativo')
{
$situacao = $pingo->monitorar($dispositivo['ip']);
if($situacao !== 'ONLINE')
{
echo "<font color='red'>".$situacao."</font>";
require_once('../crud/inserir.class.php');
$insert = new Insert();
$insert-
>inserirOcorrenciaDispositivo($dispositivo['id'],date('d/m/Y H:i'));
$quant = $select-
>pesquisarQuantOcorrenciaDispositivo($dispositivo['id'],date('d/m/Y'));
486
if($quant[0][0] > 7)
{
echo "<br /><span><small>Excedeu o
limite.</small></span>";
}
}
else
echo "<font color='blue'>".$situacao."</font>";
}
else
{
echo '-------';
}
487
print("</td></tr>");
}
print("</table>");
}
else
{
print("</table>
<p>Não há dispositivos no grupo.</p>");
}
}
}
else
{
print("<p>Nenhum registro encontrado.</p>");
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
}
?>
</div>
488
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="monitoramento_grupo.php">
<img
src="../imagens/monitorar_grupo.png" alt="Monitorar Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_grupo.php" title="Monitorar Grupo">
<span>Monitorar
Grupo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_estacao.php">
<img
src="../imagens/monitorar_estacao.png" alt="Monitorar Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_estacao.php" title="Monitorar Estação">
<span>Monitorar
Estação</span>
</a>
489
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_noderede.php">
<img
src="../imagens/monitorar_noderede.png" alt="Monitorar Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_noderede.php" title="Monitorar Nó de Rede">
<span>Monitorar
Nó de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_dispositivo.php">
<img
src="../imagens/monitorar_dispositivo.png" alt="Monitorar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_dispositivo.php" title="Monitorar Dispositivo">
<span>Monitorar
Dispositivo</span>
</a>
490
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="index.php">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
491
</div>
</footer>
</body>
</html>
15.2.9.6 Página monitoramento_estacao.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página o usuário pode selecionar uma estação específica a
ser monitorada.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
492
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Monitoramento</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="index.php">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
493
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Monitoramento</h1>
<h2>Estação</h2>
<h4>Selecione a
Estação a ser monitorada</h4>
<form name="frmmonitorarestacao"
method="POST" action="monitorar_estacao.php">
<table>
<tr>
<td></td>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>SO</td>
<td>HD</td>
<td>CPU</td>
<td>RAM</td>
<td>Status</td>
</tr>
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
494
//Pesquisa todas as
estações
$select-
>pesquisarEstacaoTodos();
//Verifica se há
resultado
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Imprime
todas as estações
print ("<tr>
<td><input type='radio' name='id'
value='$registros[id]'></input></td>
<td>$registros[nome]</td>
<td>$registros[ip]</td>
<td>$registros[local]</td>
<td>$registros[so]</td>
<td>$registros[hd]</td>
<td>$registros[cpu]</td>
<td>$registros[ram]</td>
495
<td>$registros[status]</td>
<tr>");
}
print("</table>
<input
name='Monitorar' type='submit' value='Monitorar'></input>
</form>");
}
else
{
print("</table>
</form>
<p>Nenhum
registro encontrado</p>");
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="monitoramento_grupo.php">
<img
496
src="../imagens/monitorar_grupo.png" alt="Monitorar Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_grupo.php" title="Monitorar Grupo">
<span>Monitorar
Grupo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_estacao.php">
<img
src="../imagens/monitorar_estacao.png" alt="Monitorar Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_estacao.php" title="Monitorar Estação">
<span>Monitorar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_noderede.php">
<img
497
src="../imagens/monitorar_noderede.png" alt="Monitorar Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_noderede.php" title="Monitorar Nó de Rede">
<span>Monitorar
Nó de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_dispositivo.php">
<img
src="../imagens/monitorar_dispositivo.png" alt="Monitorar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_dispositivo.php" title="Monitorar Dispositivo">
<span>Monitorar
Dispositivo</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
498
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="index.php">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
499
</body>
</html>
15.2.9.7 Página monitorar_estacao.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
Nesta página é exibido o monitoramento da estação selecionada.
Primeiro obtem-se os dados da estação selecionada através duma pesquisa no BD.
Depois verifica se seu status está ativo, caso contrário não é feito o
monitoramento. Estando ativo, cria-se o objeto pingo e faz-se o monitoramento.
Se o resultado for diferente de 'ONLINE', cria-se um objeto insert e
insere-se na tabela de ocorrências das estações a falha ocorrida. Por fim é verificado
quantas ocorrências aconteceram no dia para a estação em análise,
caso maior que 7, é informado que já excedeu o limite diário de ocorrências.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent()
{
500
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="refresh"
content="20;url=monitorar_estacao.php"/>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Monitoramento</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="index.php">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
501
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Monitoramento</h1>
<h2>Monitorar
Estação</h2>
<table>
<tr>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>Situação</td>
</tr>
<?php
if(isset($_POST['id']))
{
$_SESSION['estacao']
= $_POST['id'];
monitorar($_SESSION['estacao']);
}
elseif(isset($_SESSION['estacao']))
{
502
monitorar($_SESSION['estacao']);
}
else
{
print("</table>
<br />
<p>Se por acaso o
monitoramento não for feito,isso significa que não
foi selecionado nenhuma
estação para ser monitorada. Caso deseje selecionar alguma, clique
em
<a
href='monitoramento_estacao.php'>Monitoramento por
Estação</a>.</p>");
}
function monitorar($idestacao)
{
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
$select->pesquisarEstacaoID($idestacao);
if($select->registro)
{
503
foreach($select->registro as $estacao)
{
print ("<tr>
<td>$estacao[nome]</td>
<td>$estacao[ip]</td>
<td>$estacao[local]</td>
<td>");
if($estacao['status'] == 'Ativo')
{
require_once("pingo.class.php");
$pingo = new Pingo();
$situacao = $pingo->monitorar($estacao['ip']);
if($situacao !== 'ONLINE')
504
{
echo "<font color='red'>".$situacao."</font>";
require_once('../crud/inserir.class.php');
$insert = new Insert();
$insert-
>inserirOcorrenciaEstacao($estacao['id'],date('d/m/Y H:i'));
$quant = $select-
>pesquisarQuantOcorrenciaEstacao($estacao['id'],date('d/m/Y'));
if($quant[0][0] > 7)
{
echo "<br /><span><small>Excedeu o
limite.</small></span>";
}
}
505
else
echo "<font color='blue'>".$situacao."</font>";
}
else
{
echo '-------';
}
}
print("</td></tr></table>");
}
else
{
506
print("</table>
<p>Nenhum registro encontrado</p>");
}
}
catch
(Exception $erro)
{
echo "Erro:" . $erro->getMessage();
}
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="monitoramento_grupo.php">
<img
src="../imagens/monitorar_grupo.png" alt="Monitorar Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_grupo.php" title="Monitorar Grupo">
<span>Monitorar
Grupo</span>
</a>
507
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_estacao.php">
<img
src="../imagens/monitorar_estacao.png" alt="Monitorar Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_estacao.php" title="Monitorar Estação">
<span>Monitorar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_noderede.php">
<img
src="../imagens/monitorar_noderede.png" alt="Monitorar Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_noderede.php" title="Monitorar Nó de Rede">
<span>Monitorar
Nó de Rede</span>
</a>
508
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_dispositivo.php">
<img
src="../imagens/monitorar_dispositivo.png" alt="Monitorar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_dispositivo.php" title="Monitorar Dispositivo">
<span>Monitorar
Dispositivo</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="index.php">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
509
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.9.8 Página monitoramento_noderede.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página o usuário pode selecionar um nó de rede específico
a ser monitorado.
*/
session_start();
?>
510
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Monitoramento - Nó de
Rede</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
511
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="index.php">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Monitoramento</h1>
<h2>Nó de Rede</h2>
<h4>Selecione o Nó de Rede
a ser monitorado</h4>
<form name="frmalterarnoderede"
method="POST" action="monitorar_noderede.php">
<table>
<tr>
<td></td>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>Tipo</td>
<td>Marca</td>
512
<td>Modelo</td>
<td>Freq</td>
<td>DBI</td>
<td>Status</td>
</tr>
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisa por todos os
nós de rede
$select-
>pesquisarNoderedeTodos();
//Há resultado?
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Imprime
os resultados
print ("<tr>
<td><input type='radio' name='id'
value='$registros[id]'></input></td>
<td>$registros[nome]</td>
513
<td>$registros[ip]</td>
<td>$registros[local]</td>
<td>$registros[tipo]</td>
<td>$registros[marca]</td>
<td>$registros[modelo]</td>
<td>$registros[freq]</td>
<td>$registros[dbi]</td>
<td>$registros[status]</td>
<tr>");
}
print("</table>
<input name='Monitorar' type='submit' value='Monitorar'></input>
</form>");
}
else
{
print("</table>
</form>
<p>Nenhum
registro encontrado</p>");
}
}
514
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="monitoramento_grupo.php">
<img
src="../imagens/monitorar_grupo.png" alt="Monitorar Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_grupo.php" title="Monitorar Grupo">
<span>Monitorar
Grupo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_estacao.php">
<img
515
src="../imagens/monitorar_estacao.png" alt="Monitorar Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_estacao.php" title="Monitorar Estação">
<span>Monitorar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_noderede.php">
<img
src="../imagens/monitorar_noderede.png" alt="Monitorar Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_noderede.php" title="Monitorar Nó de Rede">
<span>Monitorar
Nó de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_dispositivo.php">
<img
516
src="../imagens/monitorar_dispositivo.png" alt="Monitorar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_dispositivo.php" title="Monitorar Dispositivo">
<span>Monitorar
Dispositivo</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="index.php">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
517
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.9.9 Página monitorar_noderede.php
<?php
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
518
<script type="text/javascript">
function toggleContent()
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="refresh"
content="20;url=monitorar_noderede.php"/>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Monitoramento</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="index.php">Monitoramento</a></li>
519
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Monitoramento</h1>
<h2>Nó de Rede</h2>
<table>
<tr>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>Situação</td>
</tr>
<?php
if(isset($_POST['id']))
{
$_SESSION['noderede']
= $_POST['id'];
monitorar($_SESSION['noderede']);
}
elseif(isset($_SESSION['noderede']))
520
{
monitorar($_SESSION['noderede']);
}
else
{
print("</table>
<br />
<p>Se por acaso o
monitoramento não for feito, isso significa que não
foi selecionado nenhum
nó de rede para ser monitorado. Caso deseje selecionar algum, clique em
<a
href='monitoramento_noderede.php'>Monitoramento por Nó de
Rede</a>.</p>");
}
function monitorar($idnoderede)
{
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
$select-
>pesquisarNoderedeID($idnoderede);
if($select->registro)
{
//
var_dump($select->registro);
521
foreach ($select-
>registro as $noderede)
{
print ("<tr>
<td>$noderede[nome]</td>
<td>$noderede[ip]</td>
<td>$noderede[local]</td>
<td>");
if($noderede['status'] == 'Ativo')
{
require_once("pingo.class.php");
$pingo = new Pingo();
$situacao = $pingo->monitorar($noderede['ip']);
if($situacao !== 'ONLINE')
{
522
echo "<font color='red'>".$situacao."</font>";
require_once('../crud/inserir.class.php');
$insert = new Insert();
$insert->inserirOcorrenciaNoderede($noderede['id'],date('d/m/Y
H:i'));
$quant = $select-
>pesquisarQuantOcorrenciaNoderede($noderede['id'],date('d/m/Y'));
if($quant[0][0] > 7)
{
echo "<br /><span><small>Excedeu o
limite.</small></span>";
}
}
else
523
echo "<font color='blue'>".$situacao."</font>";
}
else
{
echo '-------';
}
print("</td></tr></table>");
}
}
else
{
print("</table>
<p>Nenhum
registro encontrado</p>");
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
}
?>
524
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="monitoramento_grupo.php">
<img
src="../imagens/monitorar_grupo.png" alt="Monitorar Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_grupo.php" title="Monitorar Grupo">
<span>Monitorar
Grupo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_estacao.php">
<img
src="../imagens/monitorar_estacao.png" alt="Monitorar Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_estacao.php" title="Monitorar Estação">
525
<span>Monitorar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_noderede.php">
<img
src="../imagens/monitorar_noderede.png" alt="Monitorar Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_noderede.php" title="Monitorar Nó de Rede">
<span>Monitorar
Nó de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_dispositivo.php">
<img
src="../imagens/monitorar_dispositivo.png" alt="Monitorar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_dispositivo.php" title="Monitorar Dispositivo">
526
<span>Monitorar
Dispositivo</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="index.php">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
527
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.9.10 Página monitoramento_dispositivo.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página o usuário pode selecionar um dispositivo específico
a ser monitorado.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
528
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Monitoramento</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
529
href="index.php">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Monitoramento</h1>
<h2>Dispositivo</h2>
<h4>Selecione o Dispositivo a ser
monitorado</h4>
<form name="frmalterardispositivo"
method="POST" action="monitorar_dispositivo.php">
<table>
<tr>
<td></td>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>Tipo</td>
<td>Status</td>
</tr>
<?php
try
{
require_once("../crud/pesquisar.class.php");
530
$select = new Select();
//Pesquisa por todos os
dispositivos
$select-
>pesquisarDispositivoTodos();
//Verifica se há algum
resultado
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Imprime
os resultados
print ("<tr>
<td><input type='radio' name='id'
value='$registros[id]'></input></td>
<td>$registros[nome]</td>
<td>$registros[ip]</td>
<td>$registros[local]</td>
<td>$registros[tipo]</td>
<td>$registros[status]</td>
<tr>");
531
}
print("</table>
<input
name='Monitorar' type='submit' value='Monitorar'></input>
</form>");
}
else
{
print("</table>
</form>
<p>Nenhum
registro encontrado</p>");
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="monitoramento_grupo.php">
<img
src="../imagens/monitorar_grupo.png" alt="Monitorar Grupo">
</a>
<div class="portfolio-button"
532
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_grupo.php" title="Monitorar Grupo">
<span>Monitorar
Grupo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_estacao.php">
<img
src="../imagens/monitorar_estacao.png" alt="Monitorar Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_estacao.php" title="Monitorar Estação">
<span>Monitorar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_noderede.php">
<img
src="../imagens/monitorar_noderede.png" alt="Monitorar Nó de Rede">
</a>
<div class="portfolio-button"
533
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_noderede.php" title="Monitorar Nó de Rede">
<span>Monitorar
Nó de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_dispositivo.php">
<img
src="../imagens/monitorar_dispositivo.png" alt="Monitorar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_dispositivo.php" title="Monitorar Dispositivo">
<span>Monitorar
Dispositivo</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
534
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="index.php">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
535
15.2.9.11 Página monitorar_dispositivo.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
Nesta página é exibido o monitoramento do dispositivo selecionado.
Primeiro obtem-se os dados do dispositivo através duma pesquisa no BD.
Depois verifica se o status está ativo, caso contrário não é feito o
monitoramento. Estando ativo, cria-se o objeto pingo e faz-se o monitoramento.
Se o resultado for diferente de 'ONLINE', cria-se um objeto insert e
insere-se na tabela de ocorrências dos dispositivos a falha ocorrida.
Por fim é verificado quantas ocorrências aconteceram no dia para
este dispositivo, caso maior que 7, é informado que já excedeu o limite diário de
ocorrências.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent()
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
536
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="refresh"
content="20;url=monitorar_dispositivo.php"/>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Monitoramento</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="index.php">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
537
</header>
<article class="center-column">
<div class="article-content">
<h1>Monitoramento</h1>
<h2>Dispositivo</h2>
<table>
<tr>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>Situação</td>
</tr>
<?php
if(isset($_POST['id']))
{
$_SESSION['dispositivo'] =
$_POST['id'];
monitorar($_SESSION['dispositivo']);
}
elseif(isset($_SESSION['dispositivo']))
{
monitorar($_SESSION['dispositivo']);
}
538
else
{
print("</table>
<br />
<p>Se por acaso o
monitoramento não for feito,isso significa que não
foi selecionado nenhum
disposiivo para ser monitorado. Caso deseje selecionar algum, clique em
<a
href='monitoramento_dispositivo.php'>Monitoramento por Dispositivo</a>.</p>");
}
function monitorar($iddispositivo)
{
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
$select-
>pesquisarDispositivoID($iddispositivo);
if($select->registro)
{
foreach ($select-
>registro as $dispositivo)
{
print ("<tr>
<td>$dispositivo[nome]</td>
539
<td>$dispositivo[ip]</td>
<td>$dispositivo[local]</td>
<td>");
if($dispositivo['status'] === 'Ativo')
{
require_once("pingo.class.php");
$pingo = new Pingo();
$situacao = $pingo->monitorar($dispositivo['ip']);
if($situacao !== 'ONLINE')
{
echo "<font color='red'>".$situacao."</font>";
require_once('../crud/inserir.class.php');
$insert = new Insert();
540
$insert-
>inserirOcorrenciaDispositivo($dispositivo['id'],date('d/m/Y H:i'));
$quant = $select-
>pesquisarQuantOcorrenciaDispositivo($dispositivo['id'],date('d/m/Y'));
if($quant[0][0] > 7)
{
echo "<br /><span><small>Excedeu o
limite.</small></span>";
}
}
else
echo "<font color='blue'>".$situacao."</font>";
}
else
{
541
echo '-------';
}
print("</td></tr></table>");
}
}
else
{
print("</table>
<p>Nenhum
registro encontrado</p>");
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a
href="monitoramento_grupo.php">
<img
542
src="../imagens/monitorar_grupo.png" alt="Monitorar Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_grupo.php" title="Monitorar Grupo">
<span>Monitorar
Grupo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_estacao.php">
<img
src="../imagens/monitorar_estacao.png" alt="Monitorar Estação">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_estacao.php" title="Monitorar Estação">
<span>Monitorar
Estação</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_noderede.php">
<img
543
src="../imagens/monitorar_noderede.png" alt="Monitorar Nó de Rede">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_noderede.php" title="Monitorar Nó de Rede">
<span>Monitorar
Nó de Rede</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="monitoramento_dispositivo.php">
<img
src="../imagens/monitorar_dispositivo.png" alt="Monitorar Dispositivo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="monitoramento_dispositivo.php" title="Monitorar Dispositivo">
<span>Monitorar
Dispositivo</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
544
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="index.php">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
545
</body>
</html>
15.2.9.12 Página grupos.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Página que apresenta as opções referentes aos grupos do
sistema, bem como apresenta todos os grupos.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
546
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Monitoramento - Grupos</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="index.php">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
547
<div class="article-content">
<h2>Grupos</h2>
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisa todos os
grupos
$select-
>pesquisarGrupoTodos();
//Verifica se achou
alguma coisa
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Imprime
todos os grupos
("<h4>$registros[nome]</h4>
<table>
<tr>
<td>Nome</td>
548
<td>IP</td>
<td>Local</td>
</tr>");
//Cria
novo objeto Select /p pesquisar todas as estações que pertencem ao grupo em
questão
$select2 =
new Select();
$select2-
>pesquisarEstacaoGrupo($registros['id']);
foreach($select2->registro as $estacao)
{
//Verifica se há alguma estação
if(isset($estacao['id']))
{
print("<tr>
<td>$estacao[nome]</td>
<td>$estacao[ip]</td>
<td>$estacao[local]</td>
</tr>");
}
549
}
//Pesquisa
por todos os nós de rede que pertencem ao grupo em questão
$select2-
>pesquisarNoderedeGrupo($registros['id']);
foreach($select2->registro as $norede)
{
//Verifica
se há algum resultado
if(isset($norede['id']))
{
print("<tr>
<td>$norede[nome]</td>
<td>$norede[ip]</td>
<td>$norede[local]</td>
</tr>");
}
}
//Pesquisa
por todos os dispositivos que pertencem ao grupo
$select2-
>pesquisarDispositivoGrupo($registros['id']);
550
foreach($select2->registro as $dispositivo)
{
//Verifica
se retornou alguma coisa
if(isset($dispositivo['id']))
{
print("<tr>
<td>$dispositivo[nome]</td>
<td>$dispositivo[ip]</td>
<td>$dispositivo[local]</td>
</tr>");
}
}
echo
"</table>";
}
}
else
{
echo
"<p>Nenhum Registro encontrado.</p>";
551
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<?php
//Verifica qual o perfil do Usuário ao acessar esta
página, alterando as opções apresentadas na seção de box. Cada macaco no seu
galho!
if($_SESSION['perfil'] === "Administrador")
{
print('<div class="quarter-grid">
<a href="cadastrargrupo.php">
<img
src="../imagens/cadastrar_grupo.png" alt="Cadastrar Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="cadastrargrupo.php" title="Cadastrar Grupo">
<span>Cadastrar
Grupo</span>
</a>
552
</div>
</div>
<div class="quarter-grid">
<a href="alterargrupo.php">
<img
src="../imagens/alterar_grupo.png" alt="Alterar Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="alterargrupo.php" title="Alterar Grupo">
<span>Alterar
Grupo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="excluirgrupo.php">
<img
src="../imagens/excluir_grupo.png" alt="Excluir Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="excluirgrupo.php" title="Excluir Grupo">
<span>Excluir
Grupo</span>
</a>
</div>
</div>');
553
}
else
{
print('<div class="quarter-grid">
<a href="monitoramento.php">
<img
src="../imagens/monitoramento.png" alt="Monitoramento">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="monitoramento.php" title="Monitoramento">
<span>Monitoramento</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="ultimas_ocorrencias.php">
<img
src="../imagens/ultimas_ocorrencias.png" alt="Últimas Ocorrências">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a
href="ultimas_ocorrencias.php" title="Últimas Ocorrências">
<span>Últimas Ocorrências</span>
</a>
554
</div>
</div>
<div class="quarter-grid">
<a href="grupos.php">
<img
src="../imagens/grupo.png" alt="Grupos">
</a>
<div class="portfolio-button"
onmouseover="this.className=\'portfolio-button fader\'"
onmouseout="this.className=\'portfolio-button\'">
<a href="grupos.php"
title="Grupos">
<span>Grupos</span>
</a>
</div>
</div>');
}
?>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="index.php">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
555
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.9.13 Página cadastrargrupo.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página o usuário pode criar um grupo, bem como selecionar
quais estações, nós de rede e dispositivos comporão este grupo.
*/
session_start();
?>
556
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
function checarForm() //Função p/ validar o form. O
único dado obrigatório é o nome do grupo
{
if(document.frmcadastrargrupo.nome.value.length == 0)
{
alert("Informe o Nome.");
return false;
}
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
557
<title>PinGO PHP - Monitoramento - Grupos -
Cadastrar Grupo</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="index.php">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Cadastrar Grupo</h1>
<form name="frmcadastrargrupo"
method="POST" action="../crud/cadastrar.php" onsubmit="return checarForm();
return false;">
558
<input name='tipoform' value='Cadastrar
Grupo' type='hidden' />
<label for="nome">Nome:</label>
<input name="nome" type="text" id="nome"
maxlength="30" />
<br><br>
<h4>Selecione os Ativos do Grupo:</h4>
<h3>Estações</h3>
<table>
<tr>
<td></td>
<td>Nome</td>
<td>Local</td>
<td>IP</td>
<td>SO</td>
<td>HD</td>
<td>CPU</td>
<td>RAM</td>
<td>Status</td>
</tr>
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisa por todas as
estações
$select-
>pesquisarEstacaoTodos();
559
//Verifica se há algum
resultado
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Imprime todos os resultados
print ("<tr>
<td><input type='checkbox' name='idestacao[]'
value='$registros[id]' /></td>
<td>$registros[nome]</td>
<td>$registros[ip]</td>
<td>$registros[local]</td>
<td>$registros[so]</td>
<td>$registros[hd]</td>
<td>$registros[cpu]</td>
<td>$registros[ram]</td>
<td>$registros[status]</td>
<tr>");
}
}
560
else
{
echo
"<p>Nenhum registro encontrado</p>";
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</table>
<h2>Nós de Rede</h2>
<table>
<tr>
<td></td>
<td>Nome</td>
<td>Local</td>
<td>IP</td>
<td>Tipo</td>
<td>Marca</td>
<td>Modelo</td>
<td>Freq</td>
<td>DBI</td>
<td>Status</td>
</tr>
<?php
561
try
{
//Pesquisa por todos os
nós de rede
$select-
>pesquisarNoderedeTodos();
//Verifica se a consulta
retornou alguma coisa
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Imprime
os resultados
print ("<tr>
<td><input type='checkbox' name='idnoderede[]'
value='$registros[id]' /></td>
<td>$registros[nome]</td>
<td>$registros[ip]</td>
<td>$registros[local]</td>
<td>$registros[tipo]</td>
<td>$registros[marca]</td>
<td>$registros[modelo]</td>
562
<td>$registros[freq]</td>
<td>$registros[dbi]</td>
<td>$registros[status]</td>
<tr>");
}
}
else
{
echo
"<p>Nenhum registro encontrado</p>";
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</table>
<h2>Dispositivos</h2>
<table>
<tr>
<td></td>
<td>Nome</td>
<td>Local</td>
<td>IP</td>
<td>Tipo</td>
563
<td>Status</td>
</tr>
<?php
try
{
//Pesqquisa por todos
os dispositivos
$select-
>pesquisarDispositivoTodos();
//Verifica se retornou
alguma coisa
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Imprime
os resultados
print ("<tr>
<td><input type='checkbox' name='iddispositivo[]'
value='$registros[id]' /></td>
<td>$registros[nome]</td>
<td>$registros[ip]</td>
<td>$registros[local]</td>
<td>$registros[tipo]</td>
564
<td>$registros[status]</td>
<tr>");
}
}
else
{
echo
"<p>Nenhum registro encontrado</p>";
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</table>
<br><br>
<input name="Cadastrar"
type="submit" id="cadastrar" value="Cadastrar" />
<input name="Limpar" type="reset"
id="limpar" value="Limpar" />
</form>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a href="cadastrargrupo.php">
565
<img
src="../imagens/cadastrar_grupo.png" alt="Cadastrar Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrargrupo.php" title="Cadastrar Grupo">
<span>Cadastrar
Grupo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="alterargrupo.php">
<img
src="../imagens/alterar_grupo.png" alt="Alterar Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterargrupo.php" title="Alterar Grupo">
<span>Alterar
Grupo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="excluirgrupo.php">
<img
src="../imagens/excluir_grupo.png" alt="Excluir Grupo">
566
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirgrupo.php" title="Excluir Grupo">
<span>Excluir
Grupo</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="index.php">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
567
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.9.14 Página alterargrupo.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página é listado todos os grupos, bem como os ativos
pertencentes aos grupos a fim do usuário selecionar o grupo a ser alterado.
*/
session_start();
?>
568
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Monitoramento - Grupos</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
569
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="index.php">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h2>Grupos</h2>
<h5>Selecione o grupo a ser
alterado</h5>
<form name="frmalterargrupo"
method="POST" action="vergrupo.php">
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisa por todos os
grupos
$select-
>pesquisarGrupoTodos();
570
//Verifica se achou
alguma coisa
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Imprime
todos os grupos
print ("
<input type='radio' name='idgrupo' value='$registros[id]'></input>
<input name='nomegrupo' value='$registros[nome]'
type='hidden'> <strong>
$registros[nome]</strong> </input>
<table>
<tr>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
</tr>");
//Cria
novo objeto Select /p pesquisar todas as estações que pertencem ao grupo em
571
questão
$select2 =
new Select();
$select2-
>pesquisarEstacaoGrupo($registros['id']);
//Verifica
se há alguma estação
if($select2->registro)
{
foreach($select2->registro as $estacao)
{
print("<tr>
<td>$estacao[nome]</td>
<td>$estacao[ip]</td>
<td>$estacao[local]</td>
</tr>");
}
}
else
{
print("<p>Não há estações no
572
grupo.</p>");
}
//Pesquisa
por todos os nós de rede que pertencem ao grupo em questão
$select2-
>pesquisarNoderedeGrupo($registros['id']);
//Verifica
se há algum resultado
if($select2->registro)
{
foreach($select2->registro as $norede)
{
print("<tr>
<td>$norede[nome]</td>
<td>$norede[ip]</td>
<td>$norede[local]</td>
</tr>");
}
}
else
{
print("<p>Não há nós de rede no grupo.</p>");
}
573
//Pesquisa
por todos os dispositivos que pertencem ao grupo
$select2-
>pesquisarDispositivoGrupo($registros['id']);
//Verifica
se retornou alguma coisa
if($select2->registro)
{
foreach($select2->registro as $dispositivo)
{
print("<tr>
<td>$dispositivo[nome]</td>
<td>$dispositivo[ip]</td>
<td>$dispositivo[local]</td>
</tr>");
}
}
else
{
print("<p>Não há dispositivos no grupo.</p>");
}
574
print("</table>");
}
print("<input
name='Alterar' type='submit' value='Alterar'></input>
</form>");
}
else
{
print("</table>
</form>
<p>Nenhum
registro encontrado.</p>");
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a href="cadastrargrupo.php">
<img
src="../imagens/cadastrar_grupo.png" alt="Cadastrar Grupo">
575
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrargrupo.php" title="Cadastrar Grupo">
<span>Cadastrar
Grupo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="alterargrupo.php">
<img
src="../imagens/alterar_grupo.png" alt="Alterar Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterargrupo.php" title="Alterar Grupo">
<span>Alterar
Grupo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="excluirgrupo.php">
<img
src="../imagens/excluir_grupo.png" alt="Excluir Grupo">
</a>
<div class="portfolio-button"
576
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirgrupo.php" title="Excluir Grupo">
<span>Excluir
Grupo</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="index.php">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
577
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.9.15 Página vergrupo.php
<?php
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent()
{
578
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
function checarForm()
{
if(document.frmalterargrupo.nome.value.length == 0)
{
alert("Informe o Nome.");
return false;
}
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Monitoramento - Grupos</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
579
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="index.php">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h2>Grupos</h2>
<h3>Altere os dados desejados</h3>
<form name="frmalterargrupo"
method="POST" action="../crud/alterar.php" onsubmit="return checarForm(); return
false;">
<input name='tipoform'
value='Alterar Grupo' type='hidden' />
<?php
if(isset($_POST['idgrupo']))
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
$select-
580
>pesquisarGrupoID($_POST['idgrupo']);
foreach($select-
>registro as $grupo)
{
print("<input
name='idgrupo' id='idgrupo' type='hidden' value='$grupo[id]' />
<label
for='nome'>Nome:</label>
<input
name='nomegrupo' type='text' id='nome' value='$grupo[nome]' maxlength='30' />
<br><br>
<h4>Informe os
ativos do Grupo</h4>
<h5>Estacoes</h5>
<table>
<tr>
<td></td>
<td>Nome</td>
<td>Local</td>
<td>IP</td>
</tr>");
try
{
$select2 =
new Select();
581
$select2-
>pesquisarEstacaoTodos();
if($select2->registro)
{
foreach ($select2->registro as $estacao)
{
if($estacao['grupo'] == $grupo['id'])
{
print ("<tr>
<td><input type='checkbox' name='idestacao[]'
value='$estacao[id]' checked='checked' /></td>
<td>$estacao[nome]</td>
<td>$estacao[local]</td>
<td>$estacao[ip]</td>
</tr>");
}
else
582
{
print("<tr>
<td><input type='checkbox' name='idestacao[]'
value='$estacao[id]' /></td>
<td>$estacao[nome]</td>
<td>$estacao[local]</td>
<td>$estacao[ip]</td>
</tr>");
}
}
echo "</table>";
}
else
{
print("</table>
<p>Nenhuma estação encontrada.</p>");
}
583
print("<h5>Nós de Rede</h5>
<table>
<tr>
<td></td>
<td>Nome</td>
<td>Local</td>
<td>IP</td>
</tr>");
$select2-
>pesquisarNoderedeTodos();
if($select2->registro)
{
foreach ($select2->registro as $norede)
{
if($norede['grupo'] == $grupo['id'])
{
print("<tr>
<td><input type='checkbox' name='idnoderede[]'
value='$norede[id]' checked='checked' /></td>
<td>$norede[nome]</td>
584
<td>$norede[local]</td>
<td>$norede[ip]</td>
</tr>");
}
else
{
print("<tr>
<td><input type='checkbox' name='idnoderede[]'
value='$norede[id]' /></td>
<td>$norede[nome]</td>
<td>$norede[local]</td>
<td>$norede[ip]</td>
</tr>");
}
}
echo "</table>";
}
585
else
{
print("</table>
<p>Nenhum nó de rede encontrado.</p>");
}
print("<h5>Dispositivos</h5>
<table>
<tr>
<td></td>
<td>Nome</td>
<td>Local</td>
<td>IP</td>
</tr>");
$select-
>pesquisarDispositivoTodos();
if($select-
>registro)
{
foreach ($select->registro as $dispositivo)
586
{
if($dispositivo['grupo'] == $grupo['id'])
{
print ("<tr>
<td><input type='checkbox' name='iddispositivo[]'
value='$dispositivo[id]' checked='checked' /></td>
<td>$dispositivo[nome]</td>
<td>$dispositivo[local]</td>
<td>$dispositivo[ip]</td>
</tr>");
}
else
{
print ("<tr>
<td><input type='checkbox' name='iddispositivo[]'
value='$dispositivo[id]' /></td>
<td>$dispositivo[nome]</td>
<td>$dispositivo[local]</td>
587
<td>$dispositivo[ip]</td>
</tr>");
}
}
echo "</table>";
}
else
{
print("</table>
<p>Nenhum dispositivo encontrado.</p>");
}
print("<br><br>
<input
name='Alterar' type='submit' id='Alterar' value='Alterar' />
<input
name='Limpar' type='reset' id='limpar' value='Limpar' />
</form>");
}
catch (Exception
$erro)
{
echo
588
"Erro:" . $erro->getMessage();
}
}
}
else
{
print("</form>
<p>Nenhum grupo
grupo selecionado.");
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a href="cadastrargrupo.php">
<img
src="../imagens/cadastrar_grupo.png" alt="Cadastrar Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrargrupo.php" title="Cadastrar Grupo">
<span>Cadastrar
Grupo</span>
</a>
</div>
</div>
589
<div class="quarter-grid">
<a href="alterargrupo.php">
<img
src="../imagens/alterar_grupo.png" alt="Alterar Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterargrupo.php" title="Alterar Grupo">
<span>Alterar
Grupo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="excluirgrupo.php">
<img
src="../imagens/excluir_grupo.png" alt="Excluir Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirgrupo.php" title="Excluir Grupo">
<span>Excluir
Grupo</span>
</a>
</div>
</div>
</section>
590
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="index.php">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
591
</footer>
</body>
</html>
15.2.9.16 Página excluirgrupo.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Nesta página o usuário pode excluir um grupo.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
592
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Monitoramento - Grupos</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="index.php">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
</header>
593
<article class="center-column">
<div class="article-content">
<h2>Grupos</h2>
<h5>Selecione o grupo a ser
excluído</h5>
<form name="frmexcluirgrupo"
method="POST" action="../crud/excluir.php">
<input name="tipoform"
value="Excluir Grupo" type="hidden" />
<?php
try
{
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisa por todos os
grupos
$select-
>pesquisarGrupoTodos();
//Verifica se retornou
alguma coisa
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Imprime
o nome do grupo
print ("
<input type='radio' name='idgrupo' value='$registros[id]'></input>
594
<input name='nomegrupo' value='$registros[nome]'
type='hidden'> <strong>
$registros[nome]</strong> </input>
<table>
<tr>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
</tr>");
$select2 =
new Select();
//Agora
pesquisar-se-á pelas estações que pertencem ao grupo em questão
$select2-
>pesquisarEstacaoGrupo($registros['id']);
//Verifica
se a consulta retornou alguma coisa
if($select2->registro)
{
foreach($select2->registro as $estacao)
{
595
//Imprime o resultado
print("<tr>
<td>$estacao[nome]</td>
<td>$estacao[ip]</td>
<td>$estacao[local]</td>
</tr>");
}
}
else
{
print("<p>Não há estações no
grupo.</p>");
}
//Pesquisa
pelos nós de rede que pertencem ao grupo em questão
$select2-
>pesquisarNoderedeGrupo($registros['id']);
//Verifica
se a consulta retornou alguma cosia
if($select2->registro)
{
596
foreach($select2->registro as $norede)
{
//Imprime os resultados
print("<tr>
<td>$norede[nome]</td>
<td>$norede[ip]</td>
<td>$norede[local]</td>
</tr>");
}
}
else
{
print("<p>Não há nós de rede no grupo.</p>");
}
//Pesquisa
pelos dispositivos que fazem parte do grupo
$select2-
>pesquisarDispositivoGrupo($registros['id']);
//Verifica
se há resultado
if($select2->registro)
{
597
foreach($select2->registro as $dispositivo)
{
//Imprime o resultado
print("<tr>
<td>$dispositivo[nome]</td>
<td>$dispositivo[ip]</td>
<td>$dispositivo[local]</td>
</tr>");
}
}
else
{
print("<p>Não há dispositivos no grupo.</p>");
}
echo
"</table>";
}
print("<input
name='Excluir' type='submit' value='Excluir'></input>
</form>");
}
598
else
{
print("</table>
</form>
<p>Nenhum
registro encontrado.</p>");
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a href="cadastrargrupo.php">
<img
src="../imagens/cadastrar_grupo.png" alt="Cadastrar Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="cadastrargrupo.php" title="Cadastrar Grupo">
<span>Cadastrar
Grupo</span>
</a>
</div>
599
</div>
<div class="quarter-grid">
<a href="alterargrupo.php">
<img
src="../imagens/alterar_grupo.png" alt="Alterar Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="alterargrupo.php" title="Alterar Grupo">
<span>Alterar
Grupo</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="excluirgrupo.php">
<img
src="../imagens/excluir_grupo.png" alt="Excluir Grupo">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="excluirgrupo.php" title="Excluir Grupo">
<span>Excluir
Grupo</span>
</a>
</div>
</div>
600
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="index.php">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
601
</div>
</footer>
</body>
</html>
15.2.9.17 Página ultimas_ocorrencias.php
<?php
/*
@Moisés Santos Farias - Graduando em Análise e Desenvolvimento
de Sistemas - Unopar Arapiraca - AL
@TCC - Pingo PHP - Sistema simples de Gerenciamento de Redes -
2013
@Página que apresenta últimas ocorrências (falhas) dos ativos.
*/
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent() //Função p/ exibir o
"Menu" em dispositivos móveis
{
// Get the DOM reference
var contentId =
602
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Monitoramento</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="index.php">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="../relatorio">Relatório</a></li>
</ul>
</nav>
603
</header>
<article class="center-column">
<div class="article-content">
<h1>Monitoramento</h1>
<h2>Últimas
Ocorrências</h2>
<?php
try
{
("<h4>Estação</h4>
<table>
<tr>
<td>Data/Hora</td>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
</tr>");
require_once("../crud/pesquisar.class.php");
$select = new Select();
//Pesquisa pelas últimas
ocorrências das estações
$select-
604
>pesquisarUltimasOcorrEstacao();
//Verifica se retornou
alguma coisa
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Imprime
os reasultados
print ("<tr>
<td>$registros[1]</td>
<td>$registros[2]</td>
<td>$registros[3]</td>
<td>$registros[4]</td>
</tr>");
}
echo "</table>";
}
print ("<h4>Nós
de Rede</h4>
<table>
<tr>
<td>Data/Hora</td>
<td>Nome</td>
605
<td>IP</td>
<td>Local</td>
</tr>");
//Pesquisa pelas últimas
ocorrências relacionadas aos nós de rede
$select-
>pesquisarUltimasOcorrNoderede();
//Verifica se a consulta
retornou alguma coisa
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Imprime
os resultados
print ("<tr>
<td>$registros[1]</td>
<td>$registros[2]</td>
<td>$registros[3]</td>
<td>$registros[4]</td>
</tr>");
}
echo "</table>";
606
}
("<h4>Dispositivo</h4>
<table>
<tr>
<td>Data/Hora</td>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
</tr>");
//Pesquisa pelas
ocorrências nos dispositivos
$select-
>pesquisarUltimasOcorrDispositivo();
//Verifica se retornou
alguma coisa
if($select->registro)
{
foreach ($select-
>registro as $registros)
{
//Imprime
os resultados
print ("<tr>
<td>$registros[1]</td>
607
<td>$registros[2]</td>
<td>$registros[3]</td>
<td>$registros[4]</td>
</tr>");
}
echo "</table>";
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</table>
</div>
</article>
<section class="portfolio-grid clear">
<div class="quarter-grid">
<a href="monitoramento.php">
<img
src="../imagens/monitoramento.png" alt="Monitoramento">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
608
<a
href="monitoramento.php" title="Monitoramento">
<span>Monitoramento</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a
href="ultimas_ocorrencias.php">
<img
src="../imagens/ultimas_ocorrencias.png" alt="Últimas Ocorrências">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href="ultimas_ocorrencias.php" title="Últimas Ocorrências">
<span>Últimas Ocorrências</span>
</a>
</div>
</div>
<div class="quarter-grid">
<a href="grupos.php">
<img
src="../imagens/grupo.png" alt="Grupos">
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a href="grupos.php"
609
title="Grupos">
<span>Grupos</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="index.php">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="../relatorio">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
610
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.10 RELATÓRIO
15.2.10.1 Página index.php
<?php
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent()
{
611
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Relatório</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="../monitoramento">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="index.php">Relatório</a></li>
612
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Relatório</h1>
<p><a
href="relat_usuario.php">Relatórios de Usuário</a></p>
<p><a
href="relat_ativo.php">Relatórios de Ativo</a></p>
<p><a
href="relat_ocorrencias.php">Relatórios de Ocorrências</a></p>
</div>
</article>
<section class="portfolio-grid clear">
<div class='quarter-grid'>
<a
href='relat_ocorrencias.php'>
<img
src='../imagens/relatorio_ocorrencia.png' alt='Ocorrências'>
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href='relat_ocorrencias.php' title='Ocorrências'>
<span>Relatórios de Ocorrências</span>
</a>
613
</div>
</div>
<div class='quarter-grid'>
<a href='relat_usuario.php'>
<img
src='../imagens/relatorio_usuario.png' alt='Relatórios de Usuário'>
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href='relat_usuario.php' title='Relatórios de Usuário'>
<span>Relatórios de Usuário</span>
</a>
</div>
</div>
<div class='quarter-grid'>
<a href='relat_ativo.php'>
<img
src='../imagens/relatorio_ativo.png' alt='Relatórios de Ativo'>
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a href='relat_ativo.php'
title='Relatórios de Ativo'>
<span>Relatórios de Ativo</span>
</a>
</div>
</div>
614
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="index.php">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
615
</div>
</footer>
</body>
</html>
15.2.10.2 Página relat_ativo.php
<?php
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent()
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
616
content="text/html; charset=utf-8">
<title>PinGO PHP - Relatório</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="../monitoramento">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="index.php">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Relatório</h1>
<h2>Ativos</h2>
<?php
617
require_once('../crud/pesquisar.class.php');
$select = new Select();
$select->pesquisarQuantEstacao();
print('<p>Quantidade de
Estações cadastradas:<b> '.$select->registro[0][0].'</b></p>');
$select->pesquisarQuantNoderede();
print('<p>Quantidade de Nós
de Rede cadastrados:<b> '.$select->registro[0][0].'</b></p>');
$select-
>pesquisarQuantDispositivo();
print('<p>Quantidade de Dispositivos
cadastrados:<b> '.$select->registro[0][0].'</b></p>');
?>
<p><a
href="../inventario/estacoes.php">Visualizar todas as Estações</a></p>
<p><a
href="../inventario/noderede.php">Visualizar todos os Nós de Rede</a></p>
<p><a
href="../inventario/dispositivos.php">Visualizar todos os Dispositivos</a></p>
<br /><hr /><br />
618
<h3>Estações</h3>
<h4>Cadastrados por
Usuário</h4>
<form name='frmacessoporusuario'
method='POST' action='gerar_relatorio.php' target='_blank'>
<input name='tipoform'
value='Estacoes por Usuario' type='hidden'></input>
<table>
<tr>
<td></td>
<td>Nome</td>
<td>Perfil</td>
</tr>
<?php
try
{
$select-
>pesquisarUsuarioTodos();
if($select->registro)
{
foreach ($select-
>registro as $usuario)
{
print ("<tr>
<td><input type='radio' name='idusuario'
value='$usuario[idusuario]'></input></td>
<td>$usuario[nome]</td>
<td>$usuario[perfil]</td>
619
</tr>");
}
}
print("</table>
<input
name='Visualizar' type='submit' value='Visualizar' />
</form>
<br />");
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
<br /><hr /><br />
<h3>Nós de Rede</h3>
<h4>Cadastrados por
Usuário</h4>
<form name='frmestacoesusuario'
method='POST' action='gerar_relatorio.php' target='_blank'>
<input name='tipoform'
value='Nos de Rede por Usuario' type='hidden'></input>
<table>
<tr>
<td></td>
<td>Nome</td>
<td>Perfil</td>
</tr>
620
<?php
try
{
$select-
>pesquisarUsuarioTodos();
if($select->registro)
{
foreach ($select-
>registro as $usuario)
{
print ("<tr>
<td><input type='radio' name='idusuario'
value='$usuario[idusuario]'></input></td>
<td>$usuario[nome]</td>
<td>$usuario[perfil]</td>
</tr>");
}
}
print("</table>
<input
name='Visualizar' type='submit' value='Visualizar' />
</form>
<br />");
}
catch (Exception $erro)
{
621
echo "Erro:" . $erro-
>getMessage();
}
?>
<br /><hr /><br />
<h3>Dispositivos</h3>
<h4>Cadastrados por
Usuário</h4>
<form name='frmedispositivosusuario'
method='POST' action='gerar_relatorio.php' target='_blank'>
<input name='tipoform'
value='Dispositivos por Usuario' type='hidden'></input>
<table>
<tr>
<td></td>
<td>Nome</td>
<td>Perfil</td>
</tr>
<?php
try
{
$select-
>pesquisarUsuarioTodos();
if($select->registro)
{
foreach ($select-
>registro as $usuario)
{
print ("<tr>
<td><input type='radio' name='idusuario'
622
value='$usuario[idusuario]'></input></td>
<td>$usuario[nome]</td>
<td>$usuario[perfil]</td>
</tr>");
}
}
print("</table>
<input
name='Visualizar' type='submit' value='Visualizar' />
</form>
<br />");
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
?>
</div>
</article>
<section class="portfolio-grid clear">
<div class='quarter-grid'>
<a
href='relat_ocorrencias.php'>
623
<img
src='../imagens/relatorio_ocorrencia.png' alt='Ocorrências'>
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href='relat_ocorrencias.php' title='Ocorrências'>
<span>Relatórios de Ocorrências</span>
</a>
</div>
</div>
<div class='quarter-grid'>
<a href='relat_usuario.php'>
<img
src='../imagens/relatorio_usuario.png' alt='Relatórios de Usuário'>
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href='relat_usuario.php' title='Relatórios de Usuário'>
<span>Relatórios de Usuário</span>
</a>
</div>
</div>
<div class='quarter-grid'>
<a href='relat_ativo.php'>
<img
src='../imagens/relatorio_ativo.png' alt='Relatórios de Ativo'>
624
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a href='relat_ativo.php'
title='Relatórios de Ativo'>
<span>Relatórios de Ativo</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
href="index.php">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
625
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.10.3 Página relat_usuario.php
<?php
session_start();
?>
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
626
function toggleContent()
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Relatório</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="../monitoramento">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
627
<li><a
href="index.php">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Relatório</h1>
<h2>Usuários</h2>
<?php
require_once('../crud/pesquisar.class.php');
$select = new Select();
$select->pesquisarQuantUsuario();
print('<p>Quantidade de
Usuários cadastrados:<b> '.$select->registro[0][0].'</b></p>');
$select-
>pesquisarQuantAdministrador();
print('<p>Quantidade de
Usuários com perfil Administrador:<b> '.$select->registro[0][0].'</b></p>');
$select->pesquisarQuantOperador();
print('<p>Quantidade de
Usuários com perfil Operador:<b> '.$select->registro[0][0].'</b></p>');
628
?>
<br /><hr /><br />
<h3>Acessos</h3>
<h4>Por Usuário</h4>
<form name='frmacessoporusuario'
method='POST' action='gerar_relatorio.php' target='_blank'>
<input name='tipoform'
value='Acessos por Usuario' type='hidden'></input>
<table>
<tr>
<td></td>
<td>Nome</td>
<td>Perfil</td>
</tr>
<?php
try
{
$select-
>pesquisarUsuarioTodos();
if($select->registro)
{
foreach ($select-
>registro as $usuario)
{
print ("<tr>
<td><input type='radio' name='idusuario'
value='$usuario[idusuario]'></input></td>
<td>$usuario[nome]</td>
<td>$usuario[perfil]</td>
629
</tr>");
}
print("</table>
<input
name='Visualizar' type='submit' value='Visualizar' />
</form>
<br />");
}
else
{
print("</table>
</form>
<p>Não
há usuários cadastrados</p>");
}
}
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
$hoje = date('d/m/Y');
$mes = date('m/Y');
$ano = date('Y');
print("<h4>Por Período</h4>
<form name='frmacessoporperiodo'
method='POST' action='gerar_relatorio.php' target='_blank'>
<input name='tipoform'
630
value='Acessos por Data' type='hidden'></input>
<input type='radio'
value=$hoje name='data'> Hoje</input><br />
<input type='radio'
value=$mes name='data'> Mês atual</input><br />
<input type='radio' value=$ano
name='data'> Ano atual</input><br />
<br /><br />
<input name='Visualizar'
type='submit' value='Visualizar'></input>
</form>");
?>
<br /><hr /><br />
<h3>Ações</h3>
<h4>Por Usuário</h4>
<form name='frmacessoporusuario'
method='POST' action='gerar_relatorio.php' target='_blank'>
<input name='tipoform'
value='Acoes por Usuario' type='hidden'></input>
<table>
<tr>
<td></td>
<td>Nome</td>
<td>Perfil</td>
</tr>
<?php
try
{
$select-
>pesquisarUsuarioTodos();
631
if($select->registro)
{
foreach ($select-
>registro as $usuario)
{
print ("<tr>
<td><input type='radio' name='idusuario'
value='$usuario[idusuario]'></input></td>
<td>$usuario[nome]</td>
<td>$usuario[perfil]</td>
</tr>");
}
print("</table>
<input
name='Visualizar' type='submit' value='Visualizar' />
</form>
<br />");
}
else
{
print("</table>
</form>
<p>Não
há usuários cadastrados</p>");
}
}
632
catch (Exception $erro)
{
echo "Erro:" . $erro-
>getMessage();
}
$hoje = date('d/m/Y');
$mes = date('m/Y');
$ano = date('Y');
print("<h4>Por Período</h4>
<form name='frmacessoporperiodo'
method='POST' action='gerar_relatorio.php' target='_blank'>
<input name='tipoform'
value='Acoes por Data' type='hidden'></input>
<input type='radio'
value=$hoje name='data'> Hoje</input><br />
<input type='radio'
value=$mes name='data'> Mês atual</input><br />
<input type='radio' value=$ano
name='data'> Ano atual</input><br />
<br /><br />
<input name='Visualizar'
type='submit' value='Visualizar'></input>
</form>");
?>
<br /><br />
<form name='frmacessoporperiodo'
method='POST' action='gerar_relatorio.php' target='_blank'>
<input name='tipoform'
value='Ver Todos os Logs' type='hidden'></input><br />
<input name='verlogs'
type='submit' value='Visualizar todos os Logs'></input>
</form>
633
</div>
</article>
<section class="portfolio-grid clear">
<div class='quarter-grid'>
<a
href='relat_ocorrencias.php'>
<img
src='../imagens/relatorio_ocorrencia.png' alt='Ocorrências'>
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href='relat_ocorrencias.php' title='Ocorrências'>
<span>Relatórios de Ocorrências</span>
</a>
</div>
</div>
<div class='quarter-grid'>
<a href='relat_usuario.php'>
<img
src='../imagens/relatorio_usuario.png' alt='Relatórios de Usuário'>
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href='relat_usuario.php' title='Relatórios de Usuário'>
<span>Relatórios de Usuário</span>
634
</a>
</div>
</div>
<div class='quarter-grid'>
<a href='relat_ativo.php'>
<img
src='../imagens/relatorio_ativo.png' alt='Relatórios de Ativo'>
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a href='relat_ativo.php'
title='Relatórios de Ativo'>
<span>Relatórios de Ativo</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
href="../administracao">Administração</a></p></li>
<li><p><a
635
href="index.php">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.10.4 Página relat_ocorrencias.php
<?php
session_start();
?>
636
<!DOCTYPE html>
<html class="has-js" lang="pt-BR">
<head>
<link title="default" rel="stylesheet" type="text/css"
href="../comum.css">
<script type="text/javascript">
function toggleContent()
{
// Get the DOM reference
var contentId =
document.getElementById("main-nav");
// Toggle
contentId.style.display == "block" ?
contentId.style.display = "none" : contentId.style.display = "block";
}
</script>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8">
<title>PinGO PHP - Relatório</title>
</head>
<body>
<header class="content-header clear">
<a class="logo" href="../home.php"><i data-
icon="P" aria-hidden="true"></i><span>PinGO</span></a>
<div class="mobile-nav-toggle">
<a href="#"
onclick="toggleContent()">Menu</a>
</div>
637
<nav class="main-nav" id="main-nav">
<ul class="main-nav-anchors">
<li><a
href="../inventario">Inventário</a></li>
<li><a
href="../monitoramento">Monitoramento</a></li>
<li><a
href="../administracao">Administração</a></li>
<li><a
href="index.php">Relatório</a></li>
</ul>
</nav>
</header>
<article class="center-column">
<div class="article-content">
<h1>Relatório</h1>
<h2>Ocorrências</h2>
<h3>Selecione o tipo de ativo para
ver as ocorrências relacionadas</h3>
<form name="frmrelatocorrencia"
method="POST" action="gerar_relatorio.php" target="_blank">
<input name="tipoform"
value="Ver Ocorrencias" type="hidden"></input>
<input type="radio"
name="ativo" value="Estacao"> Estação</input><br /><br
/>
<input type="radio"
name="ativo" value="No de Rede"> Nó de Rede</input><br
/><br />
<input type="radio"
name="ativo" value="Dispositivo"> Dispositivo</input>
<br /><br />
<input name="Visualizar"
638
type="submit" value="Visualizar" />
</form>
</div>
</article>
<section class="portfolio-grid clear">
<div class='quarter-grid'>
<a
href='relat_ocorrencias.php'>
<img
src='../imagens/relatorio_ocorrencia.png' alt='Ocorrências'>
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href='relat_ocorrencias.php' title='Ocorrências'>
<span>Relatórios de Ocorrências</span>
</a>
</div>
</div>
<div class='quarter-grid'>
<a href='relat_usuario.php'>
<img
src='../imagens/relatorio_usuario.png' alt='Relatórios de Usuário'>
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a
href='relat_usuario.php' title='Relatórios de Usuário'>
639
<span>Relatórios de Usuário</span>
</a>
</div>
</div>
<div class='quarter-grid'>
<a href='relat_ativo.php'>
<img
src='../imagens/relatorio_ativo.png' alt='Relatórios de Ativo'>
</a>
<div class="portfolio-button"
onmouseover="this.className='portfolio-button fader'"
onmouseout="this.className='portfolio-button'">
<a href='relat_ativo.php'
title='Relatórios de Ativo'>
<span>Relatórios de Ativo</span>
</a>
</div>
</div>
</section>
<footer class="content-footer">
<div>
<ul>
<li><p><a
href="../inventario">Inventário</a></p></li>
<li><p><a
href="../monitoramento">Monitoramento</a></p></li>
<li><p><a
640
href="../administracao">Administração</a></p></li>
<li><p><a
href="index.php">Relatório</a></p></li>
</ul>
<ul>
<li><h6>Usuário: <?php echo
$_SESSION['nome'] ?></h6></li>
<li><h6>Último
Acesso: <?php echo $_SESSION['ultimoacesso'] ?></h6></li>
<li><h6><a
href="../administracao/meus_dados.php">Meus Dados</a></h6></li>
<li><h6><a
href="../logout.php">Sair</a></h6></li>
</ul>
<p> © 2013 <a
href="../home.php">PinGO PHP</a>.</p>
</div>
</footer>
</body>
</html>
15.2.10.5 Página gerar_relatorio.php
<!DOCTYPE html>
<html class='has-js' lang='pt-BR'>
641
<head>
<link title='default' rel='stylesheet' type='text/css'
href='../comum.css'>
<title>PinGO PHP - Relatório</title>
</head>
<body>
<header class='content-header clear'>
<a class='logo' href='#'><i data-icon='P' aria-
hidden='true'></i><span>PinGO</span></a>
</header>
<article class='center-column'>
<div class='article-content'>
<?php
switch ($_POST['tipoform'])
{
case "Acessos por Data" :
{
if(isset($_POST['data']))
{
require_once('../crud/pesquisar.class.php');
$select = new Select();
$select-
>pesquisarAcessoData($_POST['data']);
print("<h3>Acessos</h3>
<h4>Por Data</h4>
642
<table>
<tr>
<td>Data/Hora</td>
<td>Evento</td>
<td>Usuário</td>
</tr>");
foreach($select->registro as
$registros)
{
print("<tr>
<td>$registros[datahora]</td>
<td>$registros[evento]</td>
<td>$registros[nome]</td>
</tr>");
}
print("</table>");
}
else
echo "Período não
especificado.";
//$select-
>pesquisarAcessoData($_POST['idusuario']);
643
break;
}
case "Acessos por Usuario" :
{
if(isset($_POST['idusuario']))
{
require_once('../crud/pesquisar.class.php');
$select = new Select();
$select-
>pesquisarAcessoUsuario($_POST['idusuario']);
print("<h3>Acessos</h3>
<h4>Por Usuário</h4>
<table>
<tr>
<td>Usuário</td>
<td>Evento</td>
<td>Data/Hora</td>
</tr>");
foreach($select->registro as
$registros)
{
print("<tr>
<td>$registros[nome]</td>
644
<td>$registros[evento]</td>
<td>$registros[datahora]</td>
</tr>");
}
print("</table>");
}
else
echo "Usuário não
especificado.";
break;
}
case "Acoes por Data" :
{
if(isset($_POST['data']))
{
require_once('../crud/pesquisar.class.php');
$select = new Select();
$select-
>pesquisarAcoesData($_POST['data']);
print("<h3>Ações</h3>
<h4>Por Data</h4>
<table>
<tr>
<td>Data/Hora</td>
<td>Evento</td>
645
<td>Usuário</td>
</tr>");
foreach($select->registro as
$registros)
{
print("<tr>
<td>$registros[datahora]</td>
<td>$registros[evento]</td>
<td>$registros[nome]</td>
</tr>");
}
print("</table>");
}
else
echo "Período não
especificado.";
//$select-
>pesquisarAcessoData($_POST['idusuario']);
break;
}
case "Acoes por Usuario" :
{
646
if(isset($_POST['idusuario']))
{
require_once('../crud/pesquisar.class.php');
$select = new Select();
$select-
>pesquisarAcoesUsuario($_POST['idusuario']);
print("<h3>Ações</h3>
<h4>Por Usuário</h4>
<table>
<tr>
<td>Usuário</td>
<td>Evento</td>
<td>Data/Hora</td>
</tr>");
foreach($select->registro as
$registros)
{
print("<tr>
<td>$registros[nome]</td>
<td>$registros[evento]</td>
<td>$registros[datahora]</td>
</tr>");
}
print("</table>");
647
}
else
echo "Usuário não
especificado.";
//$select-
>pesquisarAcessoData($_POST['idusuario']);
break;
}
case "Estacoes por Usuario" :
{
if(isset($_POST['idusuario']))
{
//var_dump($_POST['idusuario']);
require_once('../crud/pesquisar.class.php');
$select = new Select();
$select-
>pesquisarEstacoesUsuario($_POST['idusuario']);
print("<h3>Estações</h3>
<h4>Cadastradas Por
Usuário</h4>
<table>
<tr>
<td>Nome</td>
648
<td>IP</td>
<td>Local</td>
<td>Usuário</td>
</tr>");
foreach($select->registro as
$registros)
{
print("<tr>
<td>$registros[0]</td>
<td>$registros[1]</td>
<td>$registros[2]</td>
<td>$registros[3]</td>
</tr>");
}
print("</table>");
}
else
echo "Usuário não
especificado.";
break;
}
case "Nos de Rede por Usuario" :
{
if(isset($_POST['idusuario']))
{
//var_dump($_POST['idusuario']);
649
require_once('../crud/pesquisar.class.php');
$select = new Select();
$select-
>pesquisarNosderedeUsuario($_POST['idusuario']);
print("<h3>Nós de Rede</h3>
<h4>Cadastrados Por
Usuário</h4>
<table>
<tr>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>Usuário</td>
</tr>");
foreach($select->registro as
$registros)
{
print("<tr>
<td>$registros[0]</td>
<td>$registros[1]</td>
<td>$registros[2]</td>
<td>$registros[3]</td>
</tr>");
}
print("</table>");
}
650
else
echo "Usuário não
especificado.";
break;
}
case "Dispositivos por Usuario" :
{
if(isset($_POST['idusuario']))
{
//var_dump($_POST['idusuario']);
require_once('../crud/pesquisar.class.php');
$select = new Select();
$select-
>pesquisarDispositivosUsuario($_POST['idusuario']);
print("<h3>Dispositivos</h3>
<h4>Cadastrados Por
Usuário</h4>
<table>
<tr>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>Usuário</td>
</tr>");
foreach($select->registro as
651
$registros)
{
print("<tr>
<td>$registros[0]</td>
<td>$registros[1]</td>
<td>$registros[2]</td>
<td>$registros[3]</td>
</tr>");
}
print("</table>");
}
else
echo "Usuário não
especificado.";
break;
}
case "Ver Ocorrencias" :
{
if(isset($_POST['ativo']))
{
require_once('../crud/pesquisar.class.php');
$select = new Select();
if($_POST['ativo'] === "Estacao")
{
print("<h3>Ocorrências</h3>
<h4>Por
652
Estação</h4>
<table>
<tr>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>Data/Hora</td>
</tr>");
$select-
>pesquisarOcorrEstacao();
foreach($select->registro as
$registros)
{
print("<tr>
<td>$registros[2]</td>
<td>$registros[3]</td>
<td>$registros[4]</td>
<td>$registros[1]</td>
</tr>");
}
echo "</table>";
}
elseif($_POST['ativo'] === "No de
Rede")
{
print("<h3>Ocorrências</h3>
653
<h4>Por Nó de
Rede</h4>
<table>
<tr>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>Data/Hora</td>
</tr>");
$select-
>pesquisarOcorrNoderede();
foreach($select->registro as
$registros)
{
print("<tr>
<td>$registros[2]</td>
<td>$registros[3]</td>
<td>$registros[4]</td>
<td>$registros[1]</td>
</tr>");
}
echo "</table>";
}
else
{
print("<h3>Ocorrências</h3>
654
<h4>Por
Dispositivo</h4>
<table>
<tr>
<td>Nome</td>
<td>IP</td>
<td>Local</td>
<td>Data/Hora</td>
</tr>");
$select-
>pesquisarOcorrDispositivo();
foreach($select->registro as
$registros)
{
print("<tr>
<td>$registros[2]</td>
<td>$registros[3]</td>
<td>$registros[4]</td>
<td>$registros[1]</td>
</tr>");
}
echo "</table>";
}
}
else
echo "Ativo não especificado.";
655
//$select-
>pesquisarAcessoData($_POST['idusuario']);
break;
}
case "Ver Todos os Logs" :
{
if(isset($_POST['verlogs']))
{
print("<table>
<tr>
<td>Data/Hora</td>
<td>Evento</td>
<td>Usuário</td>
</tr>");
require_once('../crud/pesquisar.class.php');
$select = new Select();
$select->pesquisarTodosLog();
foreach($select->registro as
$registros)
{
//var_dump($registros);
print("<tr>
<td>$registros[0]</td>
<td>$registros[1]</td>
656
<td>$registros[2]</td>
</tr>");
}
echo "</table>";
}
else
echo "<p>Erro.</p>";
}
}
?>
</div>
</article>
<footer class='content-footer'>
<p> © 2013 <a href='#'>PinGO
PHP</a>.</p>
</footer>
</body>
</html>
657
16 CRONOGRAMA
Atividades/Tempo Abril Maio Junho Julho Agosto Setembro Outubro Novembro
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
1. Elaboração do Projeto de Estágio
2. Análise de Requisitos
2.1. Descrição do Sistema Existente
2.2. Descrição do Sistema Proposto
3. Análise
3.1. Lista de Casos de Uso
3.2. Diagrama de Caso de Uso
3.3. Diagrama de Classes
3.4. Diagrama de Atividades
4. Projeto
4.1. Diagrama de Caso de Uso
4.2. Diagrama de Classe
4.3. Descrição de Caso de Uso / Diagrama de Sequência
4.4. Mapeamento das Classes
5. Implementação e Teste 01
6. Implementação e Teste 02
6.1. Implementação Final
6.2. Impressão das Telas e Relatórios
7. Implantação
7.1. Manual de Instalação
8. Elaboração do Relatório Final
9. Banca Final
658
17 CONCLUSÃO
O projeto ora em questão contribuiu e muito para a vivência
profissional do aluno-estagiário. As inúmeras variáveis existentes num projeto de
desenvolvimento de software foram sentidas pelo estagiário.
Os prazos foram um problema à parte, sendo uma das maiores
dores de cabeça causadas pelo projeto. Ao aluno ficou perceptível que o
planejamento e gerenciamento do tempo são imprescindíveis para o bom
andamento dum projeto de software.
A documentação também causou preocupação. Ter que registrar
várias informações acerca do projeto, quando o estagiário tinha a noção de processo
rápido, sem burocracia, causaram uma leve frustração. Mas se reconhece a
importância de tal procedimento.
As etapas mais difíceis com certeza foram a elaboração dos
diagramas, usando a ferramenta ASTAH, e a programação em si. Tal dificuldade
depreende-se da importância que ambas têm para o sucesso do projeto. A
programação merece destaque, pois, além de ter de se aprofundar na linguagem
utilizada (PHP), sem contar ainda na necessidade de se utilizar conceitos de HTML e
CSS, havendo muita busca em referenciais teóricos a fim de se chegar ao
desenvolvimento do software de gerenciamento.
Quanto ao levantamento de requisitos, a empresa em estudo,
principalmente o supervisor de campo, além de ser o proprietário e administrador de
redes da empresa, foi essencial para o entendimento da aplicação e delimitação de
seu escopo, pois sua experiência na área de redes de computadores foi ponto forte
para orientação no desenvolvimento.
A aplicação Pingo PHP foi de grande valia para o aprendizado do
estagiário. Para uma melhor efetivação dos testes, a aplicação foi disponibilizada na
Internet, podendo ser acessda através do endereço www.pingophp.qlix.com.br,
usando-se como login: root, e, senha: rootroot.
659
REFERÊNCIAS
KUROSE, James F.; ROSS, Keith W. Redes de computadores e a internet: uma abordagem top-down. 3. ed. São Paulo: Pearson, 2006.
NISHITANI, Paulo Kiyoshi. Redes de computadores: sistemas V. São Paulo: Pearson Prentice Hall, 2010.
TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 2ª edição. São Paulo: Pearson Prentice Hal, 2003.