Perl en Español

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

Problemas con .pl

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio
Mensaje Lun Ago 21, 2006 8:54 am
mydaboin
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Abr 2004
Mensajes: 59
Ubicación: Pues Aqui, Preguntando
Problemas con .pl Responder citando

Tengo un .pl que me busca las empresas que posee mi base de datos, el funcionaba bien hasta que sobrevino el ataque (hackearon), luego ya no hace sus funciones, tiene la base de datos que tenia respaldada, la carpeta cgi-bin la monte otra vez, pero nada ... al probarla con otro servidor y que les parece FUNCIONA Evil or Very Mad , el mismo .pl, sin modificación, exactamente igual busca las empresas, hace su función, pero en el servidor actual NO Evil or Very Mad

¿Por que sucede esto? Confused
Mensaje Lun Ago 21, 2006 9:11 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4226
Ubicación: Valladolid, España
Responder citando

Si es un cgi, deberás seguir el protocolo de comprobación de que se cumplen todos los detalles necesarios para que funcione.

Luego, iniciar las estrategias para saber porqué falla (warn, warnings, ver los logs del servidor, print, etc. etc.)
Mensaje Lun Ago 21, 2006 1:57 pm
mydaboin
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Abr 2004
Mensajes: 59
Ubicación: Pues Aqui, Preguntando
Responder citando

Gracias por el concejo Wink , revise todo y el problema resulto ser que estaba corrupta la base de datos ... TUBE QUE BORRAR TODAAA LA INFORMACIÓN Y VOLVERLA A MONTAR ... ya que a pesar que la reemplazaba se quedaba dañada ... que raro no Confused ... así que la elimine y la volvi a montar una a una ... son más de 30 directorios ... Sad .... pero esta volviendo a su funcionamiento normal ... Laughing
Mensaje Mar Ago 22, 2006 3:59 pm
mydaboin
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Abr 2004
Mensajes: 59
Ubicación: Pues Aqui, Preguntando
Responder citando

Hable demasiado pronto ...

no que que hacer ... y la logica me dice que el .pl esta bien ... busca en cada uno de mis directorios y los muestra ... bueno eso en corrida en frio ...

La realidad se desdobla para hacerme pensar el doble!!!

como se explica que en dos diferentes cuentas ... en una SIRVE HACE LA BUSQUEDA ... MUESTRSA MIS 7.348 EMPRESAS ...

y en otro NO ME DEJA MONTAR MÁS DE 4.518 ... los demás directorios no me los muestra!!! y por si fuera poco a montraslas NO LO HACE solo si le quito el .dat que sobra ...

EXPLIQUENME!!! perdon pero a veces uno cae en una especie de locura programativa!!! Sad
Mensaje Mie Ago 23, 2006 7:05 am
mydaboin
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Abr 2004
Mensajes: 59
Ubicación: Pues Aqui, Preguntando
Responder citando

jejeje ... bueno es que mi forma de programar es algo extraña y me da pena jejeej de veras Sad ... a veces construyo programas en el aire y funcionan Wink ...

mira las paginas:
www.800guia.com

En este pones en el buscar de empresas la letra a o cualquier otra ... y veras que NO BUSCA NADA

www.800guia.com.ve

En este haz el mismo procedimiento y LISTO LO ENCUENTRAS!!!!

son el mismo programa para ambas ... te pongo el pedazo que busca la información ... espero que se entienda!!! jejeje

Código:
open (TEMPORAL,">$archivo_temporal") || &Error ($!, "$archivo_temporal");
open (CATEGORIAS, "$archivo_listado") || &Error ($!, "$archivo_listado");
while($lincat=<CATEGORIAS>) {
    chop $lincat;
    $lincat=~s/<br>/\n/g;
    @inf=split("\t",$lincat);
    $grupo=$inf[0];
    $archivo_empresas = "../db/directorios/$grupo.dat";
    $archivo_empresas =~s/ //g;
    if (-e $archivo_empresas) {
        open (EMPRESAS,"$archivo_empresas") || &Error ($!, "$archivo_empresas");
        while($renglon=<EMPRESAS>) {
            chop $renglon;
            @matriz=split("\t",$renglon);
            $x=0;
            foreach $item (@campos) {
                $$item=$matriz[$x];
                $x++;
                push (@desorden,"$matriz[1]\?$renglon");
            }
            $dat="si";
            $imprimir="no";
            if ($otrosfiltros=~/$filtro/i) { $imprimir="si" }
            if ($filtro eq $filter) { $imprimir="si" }
            if ($filtro eq "") { $imprimir="si" }
            if ($status eq "") { $imprimir="no" }

            if ($imprimir eq "si") {
                if ($categoria ne "") {
                    $imprimir="no";
                    if ($catempresa=~/$categoria/i) { $imprimir="si" }
                } else {
                    $x=0;
                    $halladas=0;
                    @patron=("$codigo","$empresa","$direccion","$filter","$nosotros","$claves","$www","$pais");
                    $contexto=join("-",@patron);
                    @palabras=split("\ ",$busqueda);
                    foreach $palabra (@palabras) {
                        $x++;
                        if ($palabra ne "" && $contexto=~/$palabra/i) { $halladas++ }
                    }
                    if ($halladas==0) { $imprimir="no" }
                    if ($halladas ne $x) { $imprimir="no" }
                }
            }

            if ($imprimir eq "si") {
                $hallado="si";
                $contador++;
                $contador_pagina++;
                if ($contador_pagina>$listpag) {
                    $contador_pagina=0;
                    $pagina++;
                }
                if ($contador>=$r1) {
                    if ($contador<=$r2) {
                        print TEMPORAL "<table width=100% cellpading= cellspacing=0 border=0><tr><td>";
                        print TEMPORAL "<p align=justify>";
                        if ($titulo eq "") {
                            print TEMPORAL "<a href=\"/cgi-bin/guiaview.pl\?codigo=$codigo\&grupo=$grupo\">";
                            if ($www ne "") { print TEMPORAL "<img src=../img/url.gif border=0 align=absmiddle> " }
                            if ($email ne "") { print TEMPORAL "<img src=../img/mail.gif border=0 align=absmiddle> " }
                            $img1="../htdocs/imagenes/$codigo-titulo.jpg";
                            $img2="../htdocs/imagenes/$codigo-1.jpg";
                            $img3="../htdocs/imagenes/$codigo-2.jpg";
                            $color_emp="blue";
                            if (-e $img1 || -e $img2 || -e $img3 || $galeria ne "") { $color_emp="navy" }
                            if ($galeria ne "") { print TEMPORAL "<img src=../img/camara.gif border=0 align=absmiddle> " }
                        }
                        print TEMPORAL "<b><font color=$color_emp> $empresa</font></b>";
                        if ($titulo eq "") { print TEMPORAL "</a>" }
                        if (length($nosotros)>250) { $nosotros = substr($nosotros,0,250) }
                        print TEMPORAL " - $nosotros";
                        if ($titulo ne "") {
                            if ($numlocal ne "") { print TEMPORAL "<br><b><tt>Stand \U$numlocal</tt></b>" }
                            if ($direccion ne "") { print TEMPORAL "<br>Dirección: $direccion" }
                            if ($tlf ne "") { print TEMPORAL "<br>Tlf: $tlf" }
                            if ($www ne "") { print TEMPORAL "<br><a target=\_blank href=\"$www\"> $www </a>" }
                            if ($email ne "") { print TEMPORAL "<br><a href=\"/cgi-bin/correo.pl?destino=$email\&codigo=$codigo\&ti
                        }
                        print TEMPORAL "</td></tr></table>";
                        print TEMPORAL "<hr noshade size=1 color=\#8000FF>\n";
                    }
                }
            }
        }
    }
}
close CATEGORIAS;
close EMPRESAS;
close TEMPORAL;
Mensaje Mie Ago 23, 2006 7:19 am
mydaboin
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Abr 2004
Mensajes: 59
Ubicación: Pues Aqui, Preguntando
Responder citando

De nuevo yo ... acabo de ver una diferencia en cpanel de las dos paginas mira y ayudadame (no se mucho de mysql de veras que apenas se cuales son sus funciones Embarassed )

800guia.com:




800guia.com.ve:

Mensaje Mie Ago 23, 2006 7:21 am
mydaboin
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Abr 2004
Mensajes: 59
Ubicación: Pues Aqui, Preguntando
Responder citando

Por cierto le di a reparar y no paso nada sigue igual ... la elimino???
Mensaje Mie Ago 23, 2006 8:11 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4226
Ubicación: Valladolid, España
Responder citando

Si el código te funciona en una máquina pero en otra no, quizás el problema esté en el nombre de algún fichero o directorio, que pueden ser distintos del original.

Deberás poner más controles de seguridad en el programa.
Mensaje Mie Ago 23, 2006 10:05 am
mydaboin
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Abr 2004
Mensajes: 59
Ubicación: Pues Aqui, Preguntando
Responder citando

Trato de ver cual es el problema pero no consigo ... si hago que los lean independientemente lo hace, pero juntos no se muestra ... y me da rabia que en el otro si se ve ... con el mismo .pl ... sera que me falta un modulo Sad ... es que estaba viendo los modulos de ambas paginas y en el de 800guia.com le faltan estos (lo tiene 800guia.com.ve):

CGI::Push
CGI::Session
CGI::Session::Driver
CGI::Session::Driver::db_file
CGI::Session::Driver::DBI
Compress::Zlib
CGI::Session::Driver::file
CGI::Session::Driver::mysql
CGI::Session::Driver::postgresql
CGI::Session::Driver::sqlite
CGI::Session::Driver::sqlite
CGI::Session::ErrorHandler
CGI::Session::ID::incr
CGI::Session::ID::incr
CGI::Session::ID::md5
CGI::Session::ID::static
CGI::Session::Serialize::default
CGI::Session::Serialize::freezethaw
CGI::Session::Serialize::json
CGI::Session::Serialize::storable
CGI::Session::Serialize::yaml
CGI::Session::Test::Default
CGI::Session::Tutorial
CGI::Upload

Ahora cuales son sus funciones dentro del cgi??? Sad
Mensaje Mie Ago 23, 2006 2:03 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4226
Ubicación: Valladolid, España
Responder citando

Si tuvieras acceso a la máquina, hazle un perl -c programa.pl para ver si te da algún error de sintaxis. Si pones use warnings; y use strict; te dirá más información.
Mensaje Mie Ago 23, 2006 3:19 pm
mydaboin
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Abr 2004
Mensajes: 59
Ubicación: Pues Aqui, Preguntando
Responder citando

Dejame ver como hago!! preguntas:
¿Por qué el mismo .pl con la misma base de datos, funciona en uno y en otro no?
¿Si tuviera un error NO FUNCIONARIA en la otra?
Y si existe un error ¿Por que Ahora es que se da a conocer y no cuanto se implento el programa?

Por lo que veo tendre que hacer otro .pl ... ahora necesitare un concejo de otra forma de buscar los .dat y que los muestre todos por fa Crying or Very sad

Bueno no me queda otra cosa que decir además de Gracias!!! Wink
Mensaje Mie Ago 23, 2006 3:27 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4226
Ubicación: Valladolid, España
Responder citando

Si uno te funciona y otro no es que las condiciones externas al código del programa son distintas: permisos y nombres de ficheros y directorios, algún módulo que falte, algún módulo que falle, permisos para acceder a la base de datos, no existe la base de datos, el usuario web no tiene permiso de ejecución del programa, etc. etc.
Mensaje Lun Sep 04, 2006 1:28 pm
mydaboin
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Abr 2004
Mensajes: 59
Ubicación: Pues Aqui, Preguntando
Responder citando

Gracias, resulto ser un problema de mi servidor ... ya que por una extraña razón habían eliminado unos modulos, los que te mencione, los cuales servian de soporte para la lectura de varios .dat simultaneamente ... menos mal ... Wink ... sabias que siempre has sido de gran ayuda en mis problemas ... como haría para colaborar desde mi país con la web??? a nivel economico .. voy averiguar a ver ... saludos Smile
Mensaje Lun Sep 04, 2006 1:33 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4226
Ubicación: Valladolid, España
Responder citando

Tanto esta web como yo mismo admitimos donativos.

Sobre todo yo que llevo nueve meses en el paro Smile
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group