Jump to content


wendelfla

Member Since 28/03/2003
Offline Last Active 06/04/2008, 21:00
-----

Topics I've Started

O Siste De Busca Não Busca No Mysql

19/03/2007, 15:32

Bom tarde, amigos
Conseguir um sistema de busca, só que ele só busca nas páginas do diretório. Gostaria de colocá-lo também no MySQL.
Ex: quando peço uma busca, ele só procura na página do site no sistema de notícia ele não busca. Para entender melhor, favor acessar www.ideiabr.com/busca.php e digite fotos por exemplo. Aí ele acha, se você digitar Aradhia (essa palavra está na notícia), ela não acha.
Já tentei fazer a conexão com o banco e faz, porém não pesquisa na tabela "manchete" que é a tabela onde esta as notícias

Segue o código:

<?php

//////////////////////// INÍCIO DA CONFIGURAÇÃO ////////////////////////


/* LEIA ANTES DE MEXER NA CONFIGURAÇÃO!!!

-> Sempre que você for informar um diretório, informe o caminho relativo sem barras no início
ou no final. Por exemplo, imagine que seu script de busca esteja em:
"http://www.seunome.c...usca/busca.php", e você queira que o script interprete
como sendo a raiz da busca a mesma pasta que é a raiz do site (ou seja, a pasta que conteria
o diretório "scripts"). Então, neste caso você deveria configurar da seguinte forma:
$secao_dir[0] = "../.."
Nota: esta regra de configuração vale para este script. Ela pode não se aplicar em outros casos.
*/

// DIGITE O NOME E O CAMINHO DE CADA SEÇÃO EXISTENTE: (buscará por todos os subdiretórios automaticamente)
// Você pode incluir mais de um valor, desde que mantenha a seqüência somando 1 (um) no índice.
// Obs: para que a pasta da busca seja a mesma de onde se encontra este script, coloque apenas um ponto "."

$secao_nome[0] = "Todo o site";
$secao_dir[0] = ".";

$secao_nome[1] = "";
$secao_dir[1] = "";

$secao_nome[2] = "";
$secao_dir[2] = "";


// DIGITE O LIMITE DE EXIBIÇÃO POR PÁGINAS
$limite = 10;


// TAMANHO MÍNIMO DA PALAVRA PARA QUE A BUSCA SEJA EXECUTADA (EM CARACTERES)
$tamanho_min = 1;


// DIGITE OS DIRETÓRIOS QUE DESEJA EXCLUIR DA BUSCA
// Para adicionar novas exlusões de diretórios, copie e cole o modelo da última linha (que começa com "$exc++; ...").
// Obs: Lembre-se de NÃO colocar uma barra no início ou no final do caminho, caso contrário não excluirá o diretório

$exc=0; $excluir_dir[$exc] = "";
$exc++; $excluir_dir[$exc] = "";


/////////////// FIM DA CONFIGURAÇÃO - NÃO ALTERE OS VALORES ABAIXO SEM SABER ///////////////


$diretorio[0] = @$secao_dir[@$_GET['secao']];


function getmicrotime() {
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}

function unhtmlentities($string) {
$trans_tbl = get_html_translation_table(HTML_ENTITIES);
$trans_tbl = array_flip ($trans_tbl);
return strtr ($string, $trans_tbl);
}

function limpa_tag_scripts($string) {
$exclui = array ("'(<\?).*?(\?>)'si", // Limpar tags PHP
"'(<%).*?(%>)'si"); // Limpar tags ASP
$substitui = array ("", "");
$string = preg_replace($exclui, $substitui, $string);
return ($string);
}

function limpa($string) {
$string = eregi_replace("%0D%0A", "+", urlencode($string)); // limpar "tecla enter"
$string = eregi_replace(" ", " ", urldecode($string)); // limpar tabulações

$exclui = array ("'<[\/\!]*?[^<>]*?>'si", // Limpar tags HTML
"'([\r\n])[\s]+'", // Limpar espaços em branco
"/ +/"); // Limpar espaços consecutivos
$substitui = array ("", "\\1", " ");
$string = preg_replace($exclui, $substitui, $string);
return (trim($string));
}


///////////////////////////////// FIM DAS FUNÇÕES /////////////////////////////////

$busca = trim(stripslashes(@$_GET['busca']));
$busca = eregi_replace("\"", "", $busca);
$busca_quebra = explode(" ", $busca);

$achou_inicial = @$_GET['achou_inicial'];
if (!@$_GET['achou_inicial']) { $achou_inicial = "1"; }
if (!@$_GET['exibe_status']) { $_GET['exibe_status'] = "0"; }
if (!@$_GET['secao']) { $_GET['secao'] = "0"; }

?>
<html>
<head>
<title>idéia Brasil - Busca</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">



body,table {color: #333333; font-family: tahoma; font-size: 11px;}

a:link {color: #0066cc; text-decoration: none;}
a:hover {color: #000000; text-decoration: none; background-color: #f5f5f5}
a:active {color: #0066cc; text-decoration: none;}
a:visited {text-decoration: none; color: #0066cc}

.resultado {margin-top: 10px; margin-bottom: 30px; width: 700px;}
.linha {margin-top: -0px; height: 1px; width: 720px; text-align: left; color: #006699;}

</style>
</head>

<body topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0">
<form name="formulario" method="get" action="<?php
echo $_SERVER['PHP_SELF'] . "?busca=" . @$_GET['busca'];
?>">

<div>

Buscar por
<input type="text" name="busca" size="20" style="border: solid 1 #0066cc; font-family: verdana; font-size: 10px" <?php
if (@$busca) { echo "value=\"" . $busca . "\" "; }
?>/>
<select name="secao" style="border: solid 1 #0066cc; font-family: verdana; font-size: 10px; color: #0066cc">
<?php

for ($sec=0; !empty($secao_nome[$sec]) && !empty($secao_dir[$sec]); $sec++) {
echo "<option value=\"" . $sec . "\" ";
if ($_GET['secao'] == $sec) { echo "selected"; }
echo ">" . $secao_nome[$sec] . "</option>";
}
?>
</select>
<input type="submit" value="Buscar" / style="border: solid 1 #0066cc; font-family: verdana; font-size: 10px; cursor: hand; background-color: #ffffff">

<div style="margin-top: 10px; margin-left: 50px;"></div>
</div>
</form>
<table width="750" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>
<?php

if ($busca) {
foreach ($busca_quebra as $teste_uma) { if (strlen($teste_uma) >= $tamanho_min) { $ok = 1; } }
if (@$ok != 1) {
echo "<div style=\"margin-left: 30px;\"><strong>Atenção!</strong><br />";
echo "A(s) palavra(s) pesquisada(s) não atinge(m) o tamanho mínimo permitido!</div>";
echo $creditos . "</body>\n</html>\n";
exit; // sai do script caso nenhuma palavra atinja o tamanho mínimo permitido
}


ini_set("memory_limit", 100000000);

// varre todos os subdiretórios
$x = count($diretorio)-1;
for ($y = "0"; isset($diretorio[$y]); $y++) {
if ($dh = @opendir($diretorio[$y])) {
while (($file = readdir($dh)) !== false) {
if (is_dir("$diretorio[$y]/$file") && ($file != ".") && ($file != "..")) {
$x++;
$diretorio[$x] = $diretorio[$y] . "/" . $file;
}
}
closedir($dh);
}
}
clearstatcache();

$tempo_i = getmicrotime();


echo "<br /><br /><br /><br /><br /><br />";
if ($_GET['exibe_status'] == "1") { echo "<br />\n\n"; }


$procurou = "0";
$achou = "0";
$achados[0] = NULL;

for ($i = 0; isset($diretorio[$i]); $i++) { // varre cada diretório encontrado

if (($dh = @opendir($diretorio[$i])) && (!in_array($diretorio[$i], $excluir_dir))) {
while (($arquivo = readdir($dh)) !== false) {
$arq_quebra = explode(".", $arquivo);
$ext = strtolower(end($arq_quebra));

// sai do laço "while" caso tenha passado do limite de exibição, otimizando o tempo no modo de busca sem detalhes
if (($_GET['exibe_status'] != "1") && ($achou > $achou_inicial + $limite)) { break; }

if (($arquivo != '.') && ($arquivo != '..') && ($ext != $arq_quebra[0]) && ($ext != false)) {

if (($ext == "htm") || ($ext == "html") || ($ext == "php") || ($ext == "php3") ||
($ext == "asp") || ($ext == "pdf") || ($ext == "txt")) {
$procurou++; // determina o número de arquivos pesquisados

$abre = file_get_contents("$diretorio[$i]/$arquivo");

$cam_quebra = explode("/", $_SERVER['PHP_SELF']); array_pop($cam_quebra); array_pop($cam_quebra);
$cam_junta = implode("/", $cam_quebra);
$caminho = "http://" . $_SERVER['HTTP_HOST'];
$caminho .= $cam_junta;
$caminho .= "/" . $diretorio[$i];
$caminho .= "/" . $arquivo;
if (!ereg("\.\./", $caminho)) { $caminho = ereg_replace("\./", "", $caminho); }

$abre = limpa_tag_scripts($abre);
if (eregi("<title>", $abre)) {
$titulo = preg_replace("'.*<title>|</title>.*'si", "", $abre);
} else {
$titulo = $caminho;
}
if (empty($titulo)) { $titulo = "(Página sem título)"; }
$abre = strip_tags($abre);
$abre = unhtmlentities($abre);
$busca_quebra = explode(" ", $busca);

foreach ($busca_quebra as $busca_uma) {

if (strlen($busca_uma) < $tamanho_min) { continue; }
if ((eregi($busca_uma, $abre) || eregi($busca_uma, $arquivo)) && !in_array("$diretorio[$i]/$arquivo", $achados)) {
// determina o número de ocorrências e cria um array para não repetir resultados
$achou++;
$achados[$achou-1] = "$diretorio[$i]/$arquivo";

// sai do laço se estiver fora do intervalo de exibição pra economizar tempo
if (($achou < $achou_inicial) || ($achou > $achou_inicial + $limite)) { continue; }

// determina até onde irá a exibição dos resultados
if (($achou >= $achou_inicial) && ($achou < $achou_inicial + $limite)) {

$texto = limpa($abre);
$tamanho = strlen($texto);
$pos = strpos(strtolower($texto), strtolower($busca_uma));
if ($pos > 100) { $texto = substr($texto, $pos-100, 300); }
else if ($pos <= 100 && $pos > 50) { $texto = substr($texto, $pos-50, 300); }
else { $texto = substr($texto, 0, 300); }

/* Alternativa: $texto = preg_replace("/(^.{0,300})(\W+.*$)/", "\${1}", $texto); */

$texto_quebra = explode(" ", $texto);
if ($pos > "0") { array_shift($texto_quebra); }
if ($tamanho > "300") { array_pop($texto_quebra); }
$texto = implode(" ", $texto_quebra);

if ($pos > "0") { $texto = "... " . $texto;}
if ($tamanho > 300) { $texto = $texto . " ..."; }

echo "<strong>" . $achou . ". <a href=\"" . $diretorio[$i] . "/" . $arquivo . "\">";
echo $titulo . "</a></strong><hr class=\"linha\">\n";
echo "<div class=\"resultado\">\n";

foreach ($busca_quebra as $destaca) {
if (strlen($destaca) < $tamanho_min) { continue; }
$texto = preg_replace("/($destaca)/si", "<b>\\1</b>", $texto);
}
echo $texto;
if (empty($texto)) { echo "(Página sem descrição)"; }

echo "<div style=\"margin-top: 3px;\"><a href=\"" . $diretorio[$i] . "/" . $arquivo . "\">";
echo $caminho . "</a></div>\n\n</div>\n\n";

} // if $achou > $limite
} // if eregi()
flush();
clearstatcache();
} // foreach
} // if ($ext)
}
flush();
clearstatcache();
} // while
flush();
clearstatcache();
closedir($dh);
}
flush();
unset($diretorio[$i]);
clearstatcache();
} // fecha laço "for"


$tempo_f = getmicrotime();
$tempo_total = number_format($tempo_f-$tempo_i, 2, ",", ".");


$anterior = $achou_inicial - $limite;
$proximo = $achou_inicial + $limite;

$url_anterior = $_SERVER['PHP_SELF'] . "?busca=" . urlencode(@$_GET['busca']) . "&achou_inicial=" . $anterior;
$url_anterior .= "&secao=" . @$_GET['secao'] . "&exibe_status=" . $_GET['exibe_status'];

$url_proximo = $_SERVER['PHP_SELF'] . "?busca=" . urlencode(@$_GET['busca']) . "&achou_inicial=" . $proximo;
$url_proximo .= "&secao=" . @$_GET['secao'] . "&exibe_status=" . $_GET['exibe_status'];

if (@$achou > "0") {
echo "\n<br />\n<div align=\"center\" style=\"width: 730px\">\n<span style=\"color: #999999;\">\n";
if ($achou_inicial > 1) { echo "<a href=\"" . $url_anterior . "\">"; }
echo "<strong>« Anterior</strong></a> | ";
if ($achou > $proximo) { echo "<a href=\"" . $url_proximo . "\">"; }
echo "<strong>Próximo »</strong></a>\n</span></div>\n\n";
}

// Início do layer
if ($_GET['exibe_status'] == "1") {
if (@$achou > "0") {
if (@$achou == "1") { echo "Foi encontrada <strong>" . $achou . "</strong> ocorrência "; }
else { echo "Foram encontradas <strong>" . $achou . "</strong> ocorrências "; }
echo "para o(s) termo(s) \"<strong>" . $busca . "</strong>\"</div>";
}
} else { echo " "; } // fecha if "exibe status"

if (@$achou == "0") {
echo "<br />Não houve ocorrências para o(s) termo(s) \"<strong>" . $busca . "</strong>\"";
}

} // fecha "if ($busca)"

clearstatcache();

if (!$busca) { echo ; }

?>

Erro Instalação Do Apache

11/01/2007, 15:11

Boa tarde, amigos

Esse rapaz passou pelo mesmo problema....http://forum.wmonline.com.br/index.php?showtopic=155325

Estou tendo problemas na instalação do Apache no meu pc...
Aparece a tela normal pedindo para aguardar e em suguida outra pedindo para fechar com uma mensagem em inglês:

Installation Wizard Interrupdet

The istallation Wizard was interrupdet before Apache HTTP Server 2.2.4 could be completely installed.
Your system has not been modified. To complete installation at another time, please run setup again.

Click Finish to exit the wizard

O que será isso?

Desde já, agradeço a força

Data E Hora Das Notícias Não São Exibidos Corretamente

12/12/2006, 23:37

Boa noite,
Alguém se habilita? Já tentei de tudo e nada...
A bronca agora é a data e hora que não são exibidas corretamente. Vejam aqui:

http://www.ideiabr.com/news/index.php
A senha: 12345 e login: admin

Notícias.php

<?php
if(!isset($noticia)){
?>

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">&Uacute;ltimas Not&iacute;cias...</font><br>
<hr width="100%" color="#CCCCCC">
<?php
//Mostra todas as notícias inseridas no banco de dados e organiza em ordem
//decrescente com relação a hora de criação com um limite de 5 noticias por consulta
$resultado = mysql_query('SELECT ID, titulo, data FROM supernews ORDER BY ID DESC LIMIT 0, 5');
if(!$resultado){
die("Erro na solicitação de query: " . mysql_error() . '<br>');
}

//Verifica se há alguma noticia amazenada no banco de dados
if(mysql_num_rows($resultado) == 0){
?>
<font face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000" size="1">Aten&ccedil;&atilde;o! N&atilde;o h&aacute; notícias no banco de dados.</font><br>
<?php
} else {
//Realiza um loop atrás das informações inseridas na tabela supernews
while($row = mysql_fetch_array($resultado)){
$id = $row['ID'];
$titulo = $row['titulo'];
$data = $row['data'];
print('<p><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000"><b>' . formatData($data) . '</b><img src="time.gif" width="15" height="14" alt="" border=0><br><a class="titulo" href="?noticia=' . $id . '&titulo=' . $titulo . '">' . htmlentities($titulo) . '</a></font></p>');
}
}

//Busca pela noticia com referencia ao $id selecionado
}elseif(isset($noticia)){
$id = $noticia;
$resultado = mysql_query("SELECT * FROM supernews WHERE ID=$id");
if(!$resultado){
die("Impossível visualizar esta notícia: " . mysql_error() . '<br>');
}

//Realiza um loop atrás das informações inseridas na tabela supernews
while($row = mysql_fetch_array($resultado)){
$diretorio = $row['diretorio'];
$largura = $row['largura'];
$altura = $row['altura'];
$titulo = $row['titulo'];
$conteudo = $row['conteudo'];
$data = $row['data'];
?>
<table width="100%" align="center" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#0000000" size="2"><b><?php print(htmlentities($titulo)); ?></b></font><br>
<hr color="#000000"> </td>
</tr>
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif" color="#0000000" size="1"><b><?php print(formatData($data)); ?></b></font><br>
<hr color="#CCCCCC">
</td>
</tr>
<tr>
<td>
<?php if($diretorio == ""){ //se o diretorio for igual a vazia isso significa que é uma noticia sem imagem e mostra so a noticia
?>
<p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" color="#0000000" size="2"><?php print(nl2br(htmlentities($conteudo))); ?></font></p>
<?php } else { //caso contrario mostra a noticia com a imagem
?>
<img src="admin/<?= $diretorio; ?>" width="<?= $largura; ?>" height="<?= $altura; ?>" align="left" border="1"><font face="Verdana, Arial, Helvetica, sans-serif" color="#0000000" size="2"><?php print(nl2br(htmlentities($conteudo))); ?></font></p>
<?php } ?>
</td>
</tr>
<tr>
<td><hr color="#CCCCCC"></td>
</tr>
<tr>
<td><div align="center"><a class="links" href="java script:self.print()" onMouseOver="window.status='Imprimir'; return true">Imprimir</a>
| <a class="links" href="index.php" target="_self">Painel de Not&iacute;cias</a> | <a class="links" href="#top">Topo</a></div></td>
</tr>
<tr>
<td><hr color="#000000"></td>
</tr>
</table>
<?php
}
?>
<br>
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">+ Not&iacute;cias...</font><br>
<hr width="100%" color="#CCCCCC">
<?php
//aproveita a conexao aberta para mostra as noticias diferentes da que a pessoa está lendo
$resultado1 = mysql_query("SELECT * FROM supernews WHERE ID<>$id ORDER BY ID DESC LIMIT 0, 5");
if(!$resultado1){
die("Impossível visualizar esta notícia: " . mysql_error() . '<br>');
}
if(mysql_num_rows($resultado1) == 0){
?>
<font face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000" size="1">Adicione mais notícias.</font><br>
<?php
} else {
//Realiza um loop atrás das noticias inseridas na tabela supernews
while($row = mysql_fetch_array($resultado1)){
$id = $row['ID'];
$titulo = $row['titulo'];
print('<font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000"><a class="titulo" href="?noticia=' . $id . '&titulo=' . $titulo . '">&raquo; ' . htmlentities($titulo) . '</a></font><br>');
}
}
}
?>

IPB Skin By Virteq