
Esse sistema será aberto para visitantes ou só quem tiver cadastro conseguirá utilizar? E qual será o tempo para os dados expirarem?
A idéia é ser aberto para todos. Para se fazer uma busca rápida. tipo submarino só que bem mais simples. só que eu não gostaria de sofrer ataques de robôs, por exemplo. Por isso que os filtros seriam acionados atravez de links (também não sei ao certo se isso evitaria um ataque). e quanto ao tempo para expirar não faço idéia, ainda estou tentando resolver o problema de
como fazer. Mas a idéia é ser uma busca rápida.
Resolvi utilizar session:
veja a tabela do mysql:
--
-- Banco de Dados: `teste`
--
-- --------------------------------------------------------
--
-- Estrutura da tabela `filtro`
--
CREATE TABLE IF NOT EXISTS `filtro` (
`Nome` varchar(45) COLLATE utf8_unicode_ci NOT NULL,
`VagasGaragem` int(11) NOT NULL,
`Cor` varchar(45) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Extraindo dados da tabela `filtro`
--
INSERT INTO `filtro` (`Nome`, `VagasGaragem`, `Cor`) VALUES
('Casa - Morumbi', 3, 'vermelho'),
('Apartamento - Tatuapé', 2, 'verde'),
('Duplex - Itaim bibi', 2, 'amarelo'),
('Apartamento - Vila Prudente', 1, 'Azul');
Aqui está o arquivo index.php:
<?php session_start();
function conectar($servidor,$usuario,$senha,$banco){
// Selecionar servidor
$conectar = mysql_connect($servidor, $usuario, $senha)
or die ("<h1>Erro ao conectar no BD</h1>");
// Selecionar BD
mysql_select_db($banco, $conectar);
}
function escreve($link,$label){
return '<a href="'.$link.'">'.$label.'</a>';
}
conectar("localhost","root","","teste");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Filtro</title>
</head>
<body>
<p>
<?php
//Se filtrou pelo número de vagas.
if(isset($_GET['vagas']) && is_numeric($_GET['vagas']) && isset($_GET['cor'])){
$NumeroVagas = $_GET['vagas'];
$cor = $_GET['cor'];
$sql = "SELECT * FROM `filtro` WHERE `VagasGaragem` >= '$NumeroVagas' AND `Cor` = '$cor';";
$res = mysql_query($sql);
while($tudo = mysql_fetch_array($res)){
echo utf8_encode($tudo['Nome'])."<br />";
}
}
else if(isset($_GET['vagas']) && is_numeric($_GET['vagas'])){
$NumeroVagas = $_GET['vagas'];
$sql = "SELECT * FROM `teste`.`filtro` WHERE `VagasGaragem` >= '$NumeroVagas';";
$res = mysql_query($sql);
while($tudo = mysql_fetch_array($res)){
echo utf8_encode($tudo['Nome'])."<br />";
}
}
else{//SEM FILTROS
echo 'Vamos iniciar uma busca, tendo como parâmetro o número de vagas <br />
na garagem de um imóvel';
}
echo '<h2>No mínimo:</h2>';
echo escreve('on.php?vagas=1&','1 (uma) vaga para garagem')."<br />";
echo escreve('on.php?vagas=2&','2 (duas) vaga para garagem')."<br />";
echo escreve('on.php?vagas=3&','3 (três) vaga para garagem')."<br />";
echo '<br /><br /><br />';
echo '<h2>Detalhando busca:</h2>';
echo escreve('on.php?cor=vermelho&','Na cor vermelho')."<br />";
echo escreve('on.php?cor=verde&','Na cor verde')."<br />";
echo escreve('on.php?cor=amarelo&','Na Amarelo')."<br />";
echo escreve('on.php?cor=azul&','Na Azul')."<br />";
?>
</body>
</html>
e aqui está o carinha que 'acumula' as variáveis na url. é somente um teste, portanto se tentar deletar um filtro não vai conseguir, senão manualmente via url.
on.php:
<?php
session_start();
if(isset($_GET['vagas']) && is_numeric($_GET['vagas'])){
$_SESSION['vars'] .= 'vagas='.$_GET['vagas'].'&';
}
else if(isset($_GET['cor'])){
$_SESSION['vars'] .= 'cor='.$_GET['cor'].'&';
}
else
{$_SESSION['vars'] = '';}
header('Location: index.php?'.$_SESSION['vars']);
?>
Se alguém souber como melhorar isso será de grande ajuda, pois eu queria fazer de um jeito que fosse possível o usuário, na própria página index.php deletar a variável acumulada na url.
bueno.. é isso..