Página 1 de 2

Problemas con .pl

NotaPublicado: 2006-08-21 09:54 @454
por mydaboin
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: , el mismo .pl, sin modificación, exactamente igual busca las empresas, hace su función, pero en el servidor actual NO :evil:

¿Por que sucede esto? :?

NotaPublicado: 2006-08-21 10:11 @466
por explorer
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.)

NotaPublicado: 2006-08-21 14:57 @665
por mydaboin
Gracias por el concejo ;) , 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 :? ... así que la elimine y la volvi a montar una a una ... son más de 30 directorios ... :( .... pero esta volviendo a su funcionamiento normal ... :lol:

NotaPublicado: 2006-08-22 16:59 @749
por mydaboin
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!!! :(

NotaPublicado: 2006-08-23 08:05 @379
por mydaboin
jejeje ... bueno es que mi forma de programar es algo extraña y me da pena jejeej de veras :( ... a veces construyo programas en el aire y funcionan ;) ...

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: Seleccionar todo
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;

NotaPublicado: 2006-08-23 08:19 @388
por mydaboin
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 :oops: )

800guia.com:

Imagen


800guia.com.ve:

Imagen

NotaPublicado: 2006-08-23 08:21 @390
por mydaboin
Por cierto le di a reparar y no paso nada sigue igual ... la elimino???

NotaPublicado: 2006-08-23 09:11 @424
por explorer
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.

NotaPublicado: 2006-08-23 11:05 @503
por mydaboin
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 :( ... 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??? :(

NotaPublicado: 2006-08-23 15:03 @669
por explorer
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.