Links aleatorios con CGI

El funcionamiento es simple, hay una base de datos en un archivo de texto con los links y un programa CGI que consulta esta base de datos y selecciona en forma aleatoria uno de los enlaces.

Archivo: aleatorio.cgi

#!/usr/bin/perl
#
###############################################
# Editar #

$RandomLinkFile = "/turuta/cgi-bin/links.txt";

$UseLog = 0; #Usar log 0 = No; 1 = Yes
$RandomLogFile = "/turuta/cgi-bin/log.txt";

# No editar #
###############################################

    srand(time);
    open(LINKS,"$RandomLinkFile") || &Error("No se puede abrir archivo de links : $RandomLinkFile, Error $!n");
    $NbLines = @LinkFile = <LINKS>;
    close(LINKS);

    $Url = $LinkFile[int rand $NbLines];

    if ($UseLog) {
        @date = localtime(time); $date[4]++; $date[5] += 1900;
        $Time = "$date[4]/$date[3]/$date[5]";
        open(LOG,">>$RandomLogFile") || &Error("No se puede escribir log : $RandomLogFile, Error $!n");
        print LOG "[$Time] – $ENV{‘REMOTE_HOST’} -> $Urln";
        close(LOG);
    }

    print "Location: $Urlnn";

sub Error {
    my($ErrorText) = @_;
    print "Content-type: text/htmlnn";   
    print "Error: ".$ErrorText;
    exit;
}

Archivo: links.txt

http://www.sitio1.com
http://www.sitio2.com
http://www.sitio3.com
http://www.sitio4.com
http://www.sitio5.com

Los archivos aleatorio.cgi y links.txt tienen que estar en el mismo directorio dentro de la carpeta cgi-bin.

aleatorio.cgi > ASCII > CHMOD 777
links.txt > ASCII > CHMOD 777

Ejemplo funcional: http://www.elanime.com.ar/cgi-bin/aleatorio.cgi

Hacerlo funcionar: Hacer un vínculo al programa cgi.

Ejemplo: <a href="http://www.tusitio.com/cgi-bin/aleatorio.cgi">Link aleatorio</a>

Deja un comentario