Implementé un buscador interno que encontré para descargar y al hacerle unas modificaciones logré que funcionara correctamente en mi página web.
El buscador solo lee los datos desde un archivo de texto .dat y funciona perfecto, con solo una salvedad que no logro solucionar.
Y es que cuando en el buscador pongo una palabra que se que no existe en el archivo donde busca (erhgf, por ejemplo), no me muestra el mensaje programado de "No hay resultados para la palabra: xx" y peor aun me dice "1 resultado para : erhgf", aunque no me muestra ningun resultado.
El punto es que quiero que me muestre de forma correcta el mensaje de que no hay resultados cuando efectivamente no los hayan.
Pueden probarlo en 3w.karaokemovil.cl/search.html (poner las w)
el codigo completo es el siguiente:
Código PHP:
</head>
<?
extract($HTTP_GET_VARS);
extract($HTTP_POST_VARS);
//$results_per_page - how many results you want to be displayed per page?
$results_per_page=12;
if($action == "search" && "list") {
$user = file("site.dat");
$lis = 0;
if(strlen($keyword) <= 2){
print "<p><BR><BR><BR><b>La palabra de búsqueda debe tener al menos 3 caracteres</b><br>";
}
else{
for($x=0;$x<sizeof($user);$x++) {
$temp = explode(";",$user[$x]);
$opp[$x] = "$temp[0]";
$such = stristr($opp[$x],$keyword);
if($such) {
$list[$lis] = $opp[$x];
$lis++;
}
}
if(sizeof($list) != "0") {
//sort($keyword);
echo "<font face=arial size=2><p><b>",sizeof($list),"</b> resultado(s) encontrado(s) para: <strong>$keyword</strong><BR></p></font>";
$fa = fopen ("tempurl.txt", "w");
fwrite ($fa, "");
fclose ($fa);
for($y=0;$y<sizeof($list);$y++) {
$temp = explode(";",$list[$y]);
$fa = fopen ("tempurl.txt", "a++");
fwrite ($fa, $temp[0]);
fclose ($fa);
}
?>
<?
if (is_file("tempurl.txt"))
{
$fp=file("tempurl.txt");
$s=sizeof($fp);
if ($page=='' or !$page) { $page=1; }
$end=$results_per_page*$page;
$start=$end-$results_per_page;
if ($start<>'0') {
$new_page=$page-1;
$prev="<a href='?action=list&page=$new_page'><--Anterior</a>";
}
else {
$prev="";
}
if ($end<$s) {
$new_page1=$page+1;
$next="<a href='?action=list&page=$new_page1'>Siguiente--></a>";
}
else {
$next="";
}
for ($i=$start; $i<$end; $i++)
{
$p=explode(';', $fp[$i]);
echo "<dl><dd><font face=arial size=2><b>$p[0]</a></b><BR>$p[1]<BR><FONT SIZE=\"2\" COLOR=\"#00000\">$p[2]</FONT></dL>";
}
}
$pages=$s/$results_per_page;
$pages1=round($pages, 2);
$p= explode(".", $pages1);
$pcount=count($p);
$ext=$p[$pcount-2];
if ($ext!=0) {
$num=$p[0]+1;
}
else {
$num=$p[0];
}
echo "<table width='100%'><tr><td align='left'>$prev</td><td align='center'>";
echo "Página:";
for ($i=1; $i<=$num; $i++) {
if ($i==$page) {
echo "<B> $i </B> ";
}
else {
echo "<a href='?action=list&page=$i'>[$i]</a>";
}
}
echo "</td><td align='right'>$next</td></table>";
}
else{
echo "<p><b>No hay resultados para la palabra: <strong>$keyword.</strong></b><br>";
}
}
}
if($action == "submit") {
$fp = fopen ("site.dat", "a+");
fwrite ($fp, $title);
fwrite ($fp, ";");
fwrite ($fp, $description);
fwrite ($fp, ";");
fwrite ($fp, $link);
fwrite ($fp, ";");
fwrite ($fp, $keywords);
fwrite ($fp, ";");
fwrite ($fp, "\n");
fclose ($fp);
print "<pre><font face=arial size=3>Site has been added successfully<br><br>";
}
if($action == "add") {
echo " <center><font face=arial>Submit a site:</center><br></font><form name=\"add\" method=\"post\" action=\"?action=submit\">";
echo "<font face=arial size=2>Tltle:<FONT COLOR=\"#FF0066\">*</FONT><BR> <input type=text name=title size=30><br>The title of your site.</font><br><br>";
echo "<font face=arial size=2>Description:<FONT COLOR=\"#FF0066\">*</FONT> <BR><input type=text name=description size=50><br>Description of your site.</font><br><br>";
echo "<font face=arial size=2>Url:<FONT COLOR=\"#FF0066\">*</FONT><BR><input type=text name=link value=htp:// size=30><br>Link of your site.</font><br><br>";
echo "<font face=arial size=2>Keywords:<FONT COLOR=\"#FF0066\">*</FONT><BR><input type=text name=keywords size=30><br>Seperate keywords by spaces</font><br><br><input type=submit value=Submit><BR><BR><FONT COLOR=\"#FF0066\">*</FONT> = Required</form>";
}
?>
<?php
if($action == "list" && "search") {
?>
<?
if (is_file("tempurl.txt"))
{
$fp=file("tempurl.txt");
$s=sizeof($fp);
if ($page=='' or !$page) { $page=1; }
$end=$results_per_page*$page;
$start=$end-$results_per_page;
if ($start<>'0') {
$new_page=$page-1;
$prev="<a href='?action=list&page=$new_page'><--Anterior</a>";
}
else {
$prev="";
}
if ($end<$s) {
$new_page1=$page+1;
$next="<a href='?action=list&page=$new_page1'>Siguiente--></a>";
}
else {
$next="";
}
echo "<font face=arial size=2><p><b>","</b> Mostrando resultados <strong>$keyword</strong><BR></p></font>";
for ($i=$start; $i<$end; $i++)
{
$p=explode(';', $fp[$i]);
echo "<dl><dd><font face=arial size=2><b>$p[0]</a></b><BR>$p[1]<BR><FONT SIZE=\"2\" COLOR=\"#00000\">$p[2]</FONT></dL>";
}
}
$pages=$s/$results_per_page;
$pages1=round($pages, 2);
$p=explode('.', $pages1);
$pcount=count($p);
$ext=$p[$pcount-2];
if ($ext!=0) {
$num=$p[0]+1;
}
else {
$num=$p[0];
}
echo "<table width='100%'><tr><td align='left'>$prev</td><td align='center'>";
echo "Página:";
for ($i=1; $i<=$num; $i++) {
if ($i==$page) {
echo "<B> $i </B>";
}
else {
echo "<a href='?action=list&page=$i'>[$i]</a>";
}
}
echo "</td><td align='right'>$next</td></table>";
}
?>
</center>
</body>
</html></center>
<body>
<LEFT>
<form action="?action=search&list&page=1" method="post" name="searchform">
<p> </p>
<p>
<input type="text" name="keyword" size="30" maxlength="100">
<input type="submit" value="Buscar">
<BR>
<font size=2><BR>
<a href='?action=add'></a></font><BR>
</p>
</form></CENTER>
</body>
</html>