• Publicidad

Problema con el buscador

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Problema con el buscador

Notapor Unix_Sendin » 2006-02-19 17:23 @766

Hola, ¿qué tal? Tengo un simple problema. Aquí se lo pongo. Uso Win32 :wink:

Lo tengo en mi PC: http://localhost/buscador/index.html

Esto lo que tengo en el index.html.
Sintáxis: [ Descargar ] [ Ocultar ]
Using html4strict Syntax Highlighting
  1. <HTML>
  2. <HEAD>
  3. <TITLE> Buscador CGI </TITLE>
  4. </HEAD>
  5.  
  6. <BODY>
  7.  
  8. <form action="http://localhost/cgi-bin/buscador.cgi" method="post">
  9. <input type="text" name="query" size="50">
  10. <input type="submit">
  11. </form>
  12.  
  13. </BODY>
  14. </HTML>
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


El buscador lo tengo aquí.

http://localhost/cgi-bin/buscador.cgi

Aquí tengo el código.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!C:\perl\bin\perl.exe -w
  2.  
  3. use strict;
  4. use File::Find;
  5. use CGI qw(:standard);
  6. my $query = param("query");
  7.  
  8.  
  9. #VARS DE CONFIGURACIÓN
  10.  
  11. #LUGAR DONDE QUIERES BUSCAR. NO USES EL / FINAL
  12. my $root_dir = '/buscador/index_html';
  13.  
  14. #URL DEL DIRECTORIO QUE VAS A BUSCAR. SIN EL / FINAL
  15. my $url_dir = 'http://localhost';
  16.  
  17.  
  18. print header();
  19. print start_html();
  20. print "\n<p>Para la búsqueda $query, estos resultados se encontraron:</p>\n<ol>\n";
  21.  
  22. undef $/;
  23.  
  24. find( sub {
  25. return if($_ =~ /^\./);
  26. return unless($_ =~ /\.htm(l)?/i);
  27. stat $File::Find::name;
  28. return if -d;
  29. return unless -r;
  30.  
  31. open(FILE, "< $File::Find::name") or return;
  32. my $string = <FILE>;
  33. close (FILE);
  34.  
  35. return unless ($string =~ /\Q$query\E/i);
  36. my $page_title = $_;
  37.  
  38. if ($string =~ /<title>(.*?)<\/title>/is){
  39. $page_title = $1;
  40. }
  41.  
  42. my $int_dir = $File::Find::dir;
  43. $int_dir =~ s/$root_dir//i;
  44. my $url = $url_dir . $int_dir . "/" . $_;
  45.  
  46. print "<li><a href=\"$url\">$page_title</a></li>\n";
  47. }, $root_dir);
  48.  
  49. print "</ol>\n";
  50.  
  51. print end_html();
  52.  
  53.  
  54. exit(1);
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Bueno el error es este:

Can't stat /buscador/index_html: No such file or directory\n

Ni tengo idea qué error es ese :?:

Saludos a todos.
Avatar de Usuario
Unix_Sendin
Perlero nuevo
Perlero nuevo
 
Mensajes: 37
Registrado: 2006-01-29 13:03 @585
Ubicación: Cuba - Ciudad Habana

Publicidad

Re: Problema con el buscador

Notapor explorer » 2006-02-19 17:50 @785

$root_dir es el CAMINO, dentro del DocumentRoot de tu sitio web, en que se encuentran los ficheros que quieres que el buscador busque.

Has puesto que busque en /buscador/index.html, que es un fichero. Y además, no existe, por eso te da el fallo.

Debes colocar todos los ficheros en los que quiere que busque allí, bajo el subdirectorio buscador/, y además, este directorio debe colgar del raíz del directorio del servidor web.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Unix_Sendin » 2006-02-20 08:56 @413

Gracias :wink:
Avatar de Usuario
Unix_Sendin
Perlero nuevo
Perlero nuevo
 
Mensajes: 37
Registrado: 2006-01-29 13:03 @585
Ubicación: Cuba - Ciudad Habana


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 10 invitados