Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

No me funciona el Buscador del tutorial...
Ir a página 1, 2  Siguiente
 
Publicar nuevo tema   Responder al tema    Foros de discusión -> CGI
Mensaje Vie Sep 30, 2005 6:11 pm
MrPanza
Invitado


No me funciona el Buscador del tutorial... Responder citando

Hola!
Estoy intentando poner un buscador para un sitio pequeño, leí y use el tutorial que hay en este sitio pero no logro que funcione... solucione varias cosas que se me presentaron pero ahora no se como seguir...

En la pág donde deberían aparecer los resultado solo aparece la frase:
Para la búsqueda $query, estos resultados se encontraron:
En $query si aparece la palabra que puse en el buscador, pero no aparece el listado de los resultados...
alguna idea?
este es el link al tutorial http://perlenespanol.baboonsoftware.com/archives-tut/000138.html
Mensaje Vie Sep 30, 2005 8:40 pm
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

Hola:

Lo que se me ocurre es que tengas una problema en la ruta y no encuentre ningún archivo. Intenta con palabras que sepa existen dentro del algún archivo e intenta de nuevo.


SALUDOS
Mensaje Vie Sep 30, 2005 11:35 pm
Invitado



Responder citando

estuve probando cosas y basandome en lo que me dice el log, me parece que el buscador fuciona bien... pero como no tiene un mensaje para cuando no encuentra nada directamente me lo deja vacio... ya probé ponendo palabras que se que estan, asi que creo que tenes razón, debe ser que esta mal la ruta... mañana voy a verificar que la ruta sea la correcta y les cuento.... GRACIAS!
Mensaje Lun Oct 03, 2005 7:04 am
Alejo
Invitado


Responder citando

Sigue sin funcionar Sad . Me fijé y la ruta estaba bien escrita, pero sigue sin encontrar nada, obviamente puse a buscar palabras que sé que están.
Osea despues de que pongo buscar me aparece el cartelito de "Los resultads para la busqueda xxxx son los siguientes:" y ahí se queda.
Que puede ser??
Mensaje Lun Oct 03, 2005 7:22 am
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

Hola:

Se me ocurre la solución, cambia la parte que dice:

Código:
return unless($_ =~ /\.html/i);


por

Código:
return unless($_ =~ /\.htm(l)?/i);


Lo que suecede es que en la manera en la que está ahorita, solamente busca archivos .html, con este cambio va a buscar tanto archivos .html como los que son .htm.


SALUDOS
Mensaje Lun Oct 03, 2005 7:40 am
Invitado



Responder citando

CAPO!!!!
ese era el problema!!
Ahora tengo otro.... me da los resultados, pero estan mal linkeados, osea en ves de linkearse a

"http://www.tu-pagina.com/el_archivo_que_corresponda.htm"

, mete en el medio el path que puse para que busque... asi...

"http://www.tu-pagina.com/home/domains/tu-pagina.com/web/el_archivo_que_corresponda.htm"

Pero si le saco el path no busca en donde debería...
Mensaje Lun Oct 03, 2005 11:18 am
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

Hola:

Ya ví cual es el problema. Corregí el código, y así es como queda:

Código:

#!perl -w

use strict;
use File::Find;
use CGI qw(:standard);
my $query = param("query");


#VARS DE CONFIGURACIÓN

#LUGAR DONDE QUIERES BUSCAR. NO USES EL / FINAL
my $root_dir = '/home/user/public_html';

#URL DEL DIRECTORIO QUE VAS A BUSCAR. SIN EL / FINAL
my $url_dir = 'http://misitio.com';


print header();
print start_html();
print "\n<p>Para la búsqueda $query, estos resultados se encontraron:</p>\n<ol>\n";

undef $/;

find( sub {
        return if($_ =~ /^\./);
        return unless($_ =~ /\.htm(l)?/i);
        stat $File::Find::name;
        return if -d;
        return unless -r;

           open(FILE, "< $File::Find::name") or return;
             my $string = <FILE>;
           close (FILE);

             return unless ($string =~ /\Q$query\E/i);
               my $page_title = $_;

                if ($string =~ /<title>(.*?)<\/title>/is){
                    $page_title = $1;
                }

               my $int_dir = $File::Find::dir;
                  $int_dir =~ s/$root_dir//i;
               my $url = $url_dir . $int_dir . "/" . $_;

         print "<li><a href=\"$url\">$page_title</a></li>\n";
      }, $root_dir);

print "</ol>\n";

print end_html();


exit(1);



Lo que tienes que cambiar son las dos variables de configuración.

$root_dir - Aquí debes de poner la ruta al directorio que quieres buscar. Debes de checar que no pongas el / final.

$url_dir - El URL al directorio que vas a buscar. De igual manera no debes de poner el / final.



SALUDOS
Mensaje Lun Oct 03, 2005 11:43 am
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Responder citando

En base al problema expuesto aquí, he actualizado el tutorial con las correcciones necesarias:

http://perlenespanol.baboonsoftware.com/archives-tut/000138.html


SALUDOS
Mensaje Lun Oct 03, 2005 12:48 pm
Alejo
Invitado


Responder citando

GRACIAS!!!!
funciona perfecto!
Mensaje Dom Nov 27, 2005 2:05 pm
Juniors
Invitado


No BUSCA NADA :( Responder citando

amigos tengo un problema el buscador no busca nada no se que pasa pero lo hize todo y sale estos son la busdas y nada mas mi URL es http://www.ashton.yuukis.com ayudaneme ps lo necesito sy gracias por el Scripts
Mensaje Dom Nov 27, 2005 7:48 pm
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Re: No BUSCA NADA :( Responder citando

Juniors escribió:
amigos tengo un problema el buscador no busca nada no se que pasa pero lo hize todo y sale estos son la busdas y nada mas mi URL es http://www.ashton.yuukis.com ayudaneme ps lo necesito sy gracias por el Scripts


Intente probarlo pero parece que el CGI no existe, estás seguro es que la ruta correcta?

También checa que hayas hecho el upload del archivo como tipo ASCII y que los permisos estén en 755.


SALUDOS
Mensaje Jue Dic 22, 2005 9:20 am
Pepe
Invitado


A mi tampoco me funciona Responder citando

Hola:

Ya también instalé el buscador y no me funciona, me da el mismo mensaje de que "se encontraron los siguientes resultados", creo tener todo en orden, esta es mi liga http://www.artecinema.com.mx/buscador.html

Mi proveedor de hosting me dio esta información:

Your site is hosted on clust03.powweb.com.

ServerName: http://artecinema.com.mx
Temp URL: http://arte1623.temp.powweb.com
Secure URLs: https://arte1623.secure.powweb.com
https://artecinemacommx.secure.powweb.com

Use the SSL URL you prefer. Both URL's go to your site.
CGI: Enabled User: arte1623

CGI allows you to run scripts written in perl, php, or another program language to create dynamic content for your website.

Document Root: /www/a/r/artecinema.com.mx/htdocs
Actual Path: /www/a/arte1623/htdocs

The Document Root/actual path is useful to know when configuering CGI scripts and cron jobs.
Logs: This information is now in site tools.

FrontPage: [ Install ]

*****
Y mi código del cgi es el siguiente:

#!/usr/bin/perl -w
use strict;
use CGI qw(:standard);

my $query = param("query");

my $root_dir = '/www/a/artecinema.com.mx/htdocs';
my $url_dir = 'http://artecinema.com.mx';

print header();
print start_html();
print "\n<p>Para la búsqueda $query, estos resultados se encontraron:</p>\n<ol>\n";

undef $/;

find( sub {
return if($_ =~ /^\./);
return unless($_ =~ /\.htm(l)?/i);
stat $File::Find::name;
return if -d;
return unless -r;

open(FILE, "< $File::Find::name") or return;
my $string = <FILE>;
close (FILE);

return unless ($string =~ /\Q$query\E/i);
my $page_title = $_;

if ($string =~ /<title>(.*?)<\/title>/is){
$page_title = $1;
}

my $int_dir = $File::Find::dir;
$int_dir =~ s/$root_dir//i;
my $url = $url_dir . $int_dir . "/" . $_;

print "<li><a href=\"$url\">$page_title</a></li>\n";
}, $root_dir);

print "</ol>\n";

print end_html();


exit(1);

****
Ojalá alguien me pueda orientar pues el buscador nomás no arroja ningún resultado
Mensaje Jue Dic 22, 2005 11:46 am
Pepe
Invitado


ya pude pero... Responder citando

Hola:

Ya pude hacerlo funcionar, ahora tengo dos dudas:

1.- Cómo cambio el formato del texto, digamos que ponerle tamaño y fuente.

2.- Cómo hago para que los resultados los muestre en una ventana nueva o en algún otro frame
Mensaje Jue Dic 22, 2005 1:22 pm
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
Re: ya pude pero... Responder citando

Pepe escribió:
Hola:

Ya pude hacerlo funcionar, ahora tengo dos dudas:

1.- Cómo cambio el formato del texto, digamos que ponerle tamaño y fuente.

2.- Cómo hago para que los resultados los muestre en una ventana nueva o en algún otro frame


Para cambiar el formato todo lo que tienes que hacer es poner un CSS y en el puedes cambiar el estilo de los list items li, por ejemplo:

Código:

LI{
color:blue;
font-size:9pt;
}


Para lo otro busca la línea que dice:

Código:
print "<li><a href=\"$url\">$page_title</a></li>\n";


Y cambiala por:

Código:
print "<li><a href=\"$url\" target=\"_blank\">$page_title</a></li>\n";



SALUDOS
Mensaje Jue Dic 22, 2005 3:24 pm
Pepe
Invitado


No jaló Responder citando

Muchas gracias por la respuesta, pero qué crees?, nomás no me jala eso de que me abra en página nueva
Publicar nuevo tema   Responder al tema    Foros de discusión -> CGI Todas las horas son GMT - 6 Horas
Ir a página 1, 2  Siguiente
Página 1 de 2



Powered by phpBB © 2001, 2005 phpBB Group