Mudanças entre as edições de "Projeto Integrador - 2010.1 - Equipe Coffee Break"
Ir para navegação
Ir para pesquisar
Linha 413: | Linha 413: | ||
<h3 style="color:#661b00;">Aplicação</h3> | <h3 style="color:#661b00;">Aplicação</h3> | ||
− | Foi feito a página de atualizacao.php para receber dados do formulário de edição: | + | * Foi feito a página de atualizacao.php para receber dados do formulário de edição: |
<syntaxhighlight lang=lang="php"> | <syntaxhighlight lang=lang="php"> | ||
<? | <? |
Edição das 21h48min de 3 de julho de 2010
Diario do Projeto
Equipe CoffeBreak
Subdominio coffeebreak.sj.ifsc.edu.br
IP Válido 200.135.37.103
Alunos: Caroline, Jesse, Mario Andre, Rodolfo
8/6/10 - Terça-feira
Física
- Separado os Rak's por equipe
- Colocado dois Path Panel e um organizador no armario da equipe
- Não tinhamos cabo grande o suficiente para alcançar o nosso RAK
Enlace
- Não foi feito nada nesse dia
Rede
- Escolhido nosso servidor
- Instalado o Ubuntu Server 10.04 LTS
- Instalado os aplicativos
- SSH ( com o sistema operacional )
- apache2
- bind9
- dhcp3-server
Aplicação
- Não foi feito nada nesse dia
9/6/10 - Quarta-feira
Física
- Passamos 3 Cabos do RACK principal até o RACK da nossa equipe
- Os cabos foram crimpados no Path Panel do RACK da equipe
- Instalado 3 áreas de trabalho (na parede)
Enlace
- Não foi feito nada nesse dia
Rede
- Configurado DHCP
- Configurado NTP
- Testado NTP OK
Aplicação
- Não foi feito nada nesse dia
10/6/10 - Quinta-feira
Física
- Crimpado os cabos no Path Panel do armario principal
- Testado todos os cabos, conexão com Path Panel e Área de trabalho
Enlace
- Não foi feito nada nesse dia
Rede
- Testado DHCP
- Configurado NAT e Roteamento
Aplicação
- Foi iniciado o processo de criação
- A estrutura do bando de dados MySQL foi projetada e implantada
Segue a estrutara do banco de dados:
--
-- Banco de Dados: `coffeebreak`
--
-- --------------------------------------------------------
--
-- Estrutura da tabela `anuncio`
--
CREATE TABLE IF NOT EXISTS `anuncio` (
`aid` int(11) unsigned zerofill NOT NULL AUTO_INCREMENT,
`titulo` varchar(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`texto` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`link` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`visualizacoes` int(11) NOT NULL,
`visitas` int(11) NOT NULL,
`expira_em` datetime NOT NULL,
`expirado` char(1) NOT NULL,
PRIMARY KEY (`aid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=49 ;
-- --------------------------------------------------------
--
-- Estrutura da tabela `banner`
--
CREATE TABLE IF NOT EXISTS `banner` (
`bid` int(11) unsigned zerofill NOT NULL,
PRIMARY KEY (`bid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Estrutura da tabela `login`
--
CREATE TABLE IF NOT EXISTS `login` (
`id` int(6) unsigned zerofill NOT NULL AUTO_INCREMENT,
`usuario` varchar(100) NOT NULL,
`senha` varchar(255) NOT NULL,
`ultimo_ip` varchar(100) NOT NULL,
`ultima_data` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
11/6/10 - Sexta-feira
Física
- Não foi feito nada nesse dia
Enlace
- Manobrado os cabos do servidor direito até o switch do RAK Central para conexão com a COINF
Rede
- Configurado o Ip Válido
- Testado o DNS
- Colocado o servidor no armario da direita no laboratorio Redes 1
Aplicação
- Foi feito a conexão ao banco de dados orientado a objetos.
Segue o código (mysql.php):
<?
class conMysql {
var $servidor = "localhost";
var $usuario = "root";
var $senha = "4coffee4";
var $database = "coffeebreak";
var $validacao = "TGHDFEU1H5N5cUo2fHfUeHe1bUrheeaukghdyuGHEgh443256gyfegR";
var $query;
var $link;
var $resultado;
function conectar() {
$this->link = mysql_connect($this->servidor,$this->usuario,$this->senha);
if (!$this->link) {
echo "Falha na conexao com o Banco de Dados!<br />";
echo "Erro: " . mysql_error();
die();
} elseif (!mysql_select_db($this->database, $this->link)) {
echo "O Banco de Dados solicitado não pode ser aberto!<br />";
echo "Erro: " . mysql_error();
die();
}
} // fecha conectar
function desconectar() {
return mysql_close($this->link);
}
function executeQuery($query) {
$this->conectar();
$this->query=$query;
if($this->resultado=mysql_query($this->query)) {
$this->desconectar();
return $this->resultado;
} else {
echo "Ocorreu um erro na execução da SQL";
echo "Erro :" . mysql_error();
echo "SQL: " . $query;
die();
desconectar();
}
}
} // fecha class
?>
Estanciando e executando a Query:
require 'admin/mysql.php'; // Faz o requerimento da classe conMysql
$conexao = new conMysql(); // Faz o estanciamento
$conexao->executeQuery("select * from anuncio where expirado = 'n'"); // Executa a Query
14/6/10 - Segunda-feira
Física
- iniciado a confecção dos pacth cord
Enlace
- Fomos informados pelo professor Casagrande que os patch cord prontos(que são do laboratorio Redes 1), usados na conexão cruzada nos RACKs das equipes tem que ser trocados, por path cord confeccionados pelas mesmas
Rede
Aplicação
- Foi implementado a página inicial do sistema. Página:
// Função do ítem deletar
<script language='Javascript'>
function confirmar() {
if( confirm( 'Tem certeza que deseja deletar?' ) ) {
return true;
} else {
return false;
}
}
</script>
<table id="box-table-a" summary="Coffee Break">
<thead>
<tr>
<th scope="col">Título</th>
<th scope="col">Cliques</th>
<th scope="col">Tempo Restante</th>
<th scope="col">Expirado</th>
<th scope="col">Editar</th>
<th scope="col">Excluir</th>
</tr>
</thead>
<tbody>
<?
$conexao = new conMysql();
function transData($dataMySQL) {
$agora = date("Y-n-j H:i:s");
$data_atual = explode(' ', $agora);
$data_de_cadastro = explode(' ', $dataMySQL);
// Tranforma a difença entre as datas que estão no formato aaaa/mm/dd em dias faltantes.
$time_inicial = strtotime($data_atual[0]);
$time_final = strtotime($data_de_cadastro[0]);
$diferenca = $time_final - $time_inicial;
$dias = (int)floor( $diferenca / (60 * 60 * 24));
if ($dias <= 0) {
$dias = "";
} elseif ($dias == 1) {
$dias .= " dia";
} else {
$dias .= " dias";
}
return $dias;
}
// Se o banner estiver expirado, o mesmo é atualizado e a página do sistema é atualizada.
function atualizaBD($dataBD,$aid,$expirado) {
$agora = date("Y-n-j H:i:s");
$tempo_transcorrido = (strtotime($agora)-strtotime($dataBD));
if (($tempo_transcorrido > 0) && ($expirado != "s")) {
$conexao = new conMysql();
$conexao->executeQuery("update anuncio set expirado='s' where aid='$aid'");
echo("<script>window.location = 'sistema.php';</script>");
}
}
$resultado = $conexao->executeQuery("select * from anuncio order by expira_em desc");
// Gera as linhas da tabela
while ($busca = mysql_fetch_object($resultado)) {
atualizaBD($busca->expira_em,$busca->aid,$busca->expirado);
// Troca "n" ou "s" por "Sim" ou "Não".
if ($busca->expirado == n) {
$expirado = "Não";
} else {
$expirado = "Sim";
}
echo '<tr>
<td><a href="' . $busca->link . '">' . $busca->titulo . '</a></td>
<td>' . $busca->visitas . '</td>
<td>' . transData($busca->expira_em) . ' </td>
<td>' . $expirado . '</td>
<td><a href="sistema.php?action=editar&editar=' . $busca->aid . '">
<img src="imagens/edit.png" width="16" height="16" /></a></td>
<td><a href="excluir.php?action=excluir&excluir=' . $busca->aid . '" onClick="return confirmar();">
<img src="imagens/delete.png" width="16" height="16" /></a></td>
</tr>';
}
?>
</tbody>
</table>
15/6/10 - Terça-feira
Física
- confeccionado 4 path cord para conexão cruzada, para o RACK da equipe
Enlace
Rede
Aplicação
Formulário de cadastro:
<form name="cadastrar" onSubmit="return formularios();" method="post" action="enviar.php?action=novo">
<table id="box-table-b" summary="Coffee Break">
<thead>
<tr>
<th scope="col" align="left">Cadastro de Anúcio</th>
<th scope="col" align="right"><? $data = date("j/n/Y"); $hora = date("H:i:s"); echo "Data: $data - Horário: $hora"; ?></th>
</tr>
</thead>
<tbody>
<tr>
<td><div class="encapsulador-300"><b>Título: </b><br /><input class="input-1" type="text" name="titulo"></div></td>
<td><div class="encapsulador-300"><b>Link: </b><br /><input class="input-1" type="text" name="link"></div></td>
</tr>
<tr>
<td colspan="2"><div class="encapsulador-680"><b>Texto: </b><br />
<textarea class="textarea-1" rows="10" name="texto"></textarea></div></td>
</tr>
<tr>
<td><div class="encapsulador-200"><b>Expira em: </b>
<input class="input-2" id="date" type="text" name="expira_em"></div></td>
<td><div class="encapsulador-200"><b>Expirado? </b>
<input type="radio" name="expirado" value="n" checked> Não -
<input type="radio" name="expirado" value="s"> Sim</div></td>
</tr>
<tr>
<td colspan="2"><div class="encapsulador-150-center">
<input name="enviar" type="submit" value=" Enviar "></div></td>
</tr>
</tbody>
</table>
</form>
Formulário de edição:
$conexao = new conMysql();
$busca = mysql_fetch_object($conexao->executeQuery("select * from anuncio where aid='$editar'"));
if ($busca->expirado == n) {
$marcacao_ex = "<input type=\"radio\" name=\"expirado\" value=\"n\" checked> Não -
<input type=\"radio\" name=\"expirado\" value=\"s\"> Sim";
} else {
$marcacao_ex = "<input type=\"radio\" name=\"expirado\" value=\"n\"> Não -
<input type=\"radio\" name=\"expirado\" value=\"s\" checked> Sim";
}
?>
<form name="atualizar" onSubmit="return formularios();" method="post" action="atualizar.php?action=atualizar">
<table id="box-table-b" summary="Coffee Break">
<thead>
<tr>
<th scope="col" align="left">Cadastro de Anúcio</th>
<th scope="col" align="right"><? $data = date("j/n/Y"); $hora = date("H:i:s"); echo "Data: $data - Horário: $hora"; ?></th>
</tr>
</thead>
<tbody>
<tr>
<td><div class="encapsulador-300"><b>Título: </b><br />
<input class="input-1" type="text" name="titulo" value="<? echo $busca->titulo ?>"></div></td>
<td><div class="encapsulador-300"><b>Link: </b><br />
<input class="input-1" type="text" name="link" value="<? echo $busca->link ?>"></div></td>
</tr>
<tr>
<td colspan="2"><div class="encapsulador-680"><b>Texto: </b><br />
<textarea class="textarea-1" rows="10" name="texto"><? echo $busca->texto ?></textarea></div></td>
</tr>
<tr>
<td><div class="encapsulador-200"><b>Expira em: </b>
<input class="input-2" id="date" type="text" name="expira_em" value="<? echo $busca->expira_em ?>"></div></td>
<td><div class="encapsulador-200"><b>Expirado? </b><? echo $marcacao_ex ?></div></td>
</tr>
<tr>
<td colspan="2"><div class="encapsulador-150-center">
<input type="hidden" name="atualizar" value="<? echo $editar ?>">
<input name="enviar" type="submit" value=" Atualizar "></div></td>
</tr>
</tbody>
</table>
</form>
Foi implementado nos formulários do sistema funções JavaScript para verificação dos campos. Exemplo:
<form name="enviar" onSubmit="return formularios();" method="post" action="atualizar.php?action=atualizar">
<input type="text" name="titulo">
<input name="enviar" type="submit" value="Enviar">
</form>
<script language="JavaScript">
function formularios(){
if (document.enviar.titulo.value=="") {
alert( "Entre com um título!" );
document.enviar.titulo.focus();
return false;
}
return true;
}
</script>
16/6/10 - Quarta-feira
Física
- confeccionado 4 pacth cord para conexão cruzada, parao RACK principal
Enlace
Rede
- Instalados e configurados:Dansguardian, Squid, Firewall.
Aplicação
- Foi feito a página de atualizacao.php para receber dados do formulário de edição:
<?
$action = $_GET['action'];
$atualizar = $_POST['atualizar'];
$titulo = $_POST['titulo'];
$texto = $_POST['texto'];
$link = $_POST['link'];
$expira_em = $_POST['expira_em'];
$expirado = $_POST['expirado'];
if ($action == "atualizar") {
$conexao = new conMysql();
$conexao->executeQuery("update anuncio set titulo='$titulo',texto='$texto',link='$link',
expira_em='$expira_em',expirado='$expirado' where aid='$atualizar'");
echo "<center><b>Anúncio atualizado com sucesso!</b></center>";
echo "<center><a href=sistema.php>Voltar</a></center>";
} else {
echo "<center><b>Não há variáveis a serem processadas!</b></center>";
echo "<center><a href=sistema.php>Voltar</a></center>";
}
?>
Foi feito a página de enviar.php para receber dados do formulário de cadastro:
<?
$action = $_GET['action'];
$titulo = $_POST['titulo'];
$texto = $_POST['texto'];
$link = $_POST['link'];
$data = $_POST['expira_em'];
$expirado = $_POST['expirado'];
$hora = date("H:i:s");
$expira_em = "$data ". $hora;
if ($action == "novo") {
$conexao = new conMysql();
$conexao->executeQuery("insert into anuncio values(null,'$titulo','$texto','$link','0','0','$expira_em','$expirado')");
echo "<center><b>Anúncio cadastrado com sucesso!</b></center>";
echo "<center><a href=sistema.php>Voltar</a></center>";
} else {
echo "<center><b>Não há variáveis a serem processadas!</b></center>";
echo "<center><a href=sistema.php>Voltar</a></center>";
}
?>
17/6/10 - quinta-feira
Física
Enlace
Rede
Aplicação
- Função do ítem excluir que verifica se usuário tem certeza:
<script language='javascript'>
function confirmar() {
if( confirm( 'Tem certeza que deseja deletar?' ) ) {
return true;
} else {
return false;
}
}
</script>
Ítem deletar:
<td><a href="excluir.php?action=excluir&excluir=' . $busca->aid . '" onClick="return confirmar();">
<img src="imagens/delete.png" width="16" height="16" /></a></td>
Exemplo da ação:
18/6/10 - Sexta-feira
Física
Enlace
Rede
Aplicação
- Foi implantado um ítem de calendário nos formulários de Edição e Cadastro
Instalação e ativação:
<head>
<link rel="stylesheet" type="text/css" href="calendario/calendar.css">
<script type="text/javascript" src="calendario/mootools.js"></script>
<script type="text/javascript" src="calendario/calendar.js"></script>
<script type="text/javascript">
window.addEvent('domready', function() { myCal = new Calendar({ date: 'Y-m-d' }); });
</script>
</head>
Uso (id="data" no input ativa a função JavaScript):
<input class="input-2" id="date" type="text" name="expira_em">
Exemplo da ação:
21/6/10 - Segunda-feira
Física
Enlace
Rede
Aplicação
22/6/10 - terça-feira
Física
Enlace
Rede
Aplicação
23/6/10 - Quarta-feira
Física
Enlace
Rede
Aplicação
24/6/10 - Quinta-feira
Física
Enlace
Rede
Aplicação
25/6/10 - Sexta-feira
Física
Enlace
Rede
Aplicação
28/6/10 - Segunda-feira
Física
Enlace
Rede
Aplicação
29/6/10 - Terça-feira
Física
Enlace
- Configurado access point
- colocado access point para funcionar
Rede
Aplicação