Foros del Web » Programación para mayores de 30 ;) » Programación General »

Libro de visitas

Estas en el tema de Libro de visitas en el foro de Programación General en Foros del Web. Hola a tod@s. Tengo un script pre-fabricado de un libro de visitas. Lo tenia hosteado en un servidor y anda perfectamente, pero ahora cambie de ...
  #1 (permalink)  
Antiguo 16/12/2005, 04:46
Avatar de c0lo  
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires
Mensajes: 281
Antigüedad: 18 años, 9 meses
Puntos: 1
Libro de visitas

Hola a tod@s.
Tengo un script pre-fabricado de un libro de visitas.
Lo tenia hosteado en un servidor y anda perfectamente, pero ahora cambie de empresa y tuve que mudar el libro al otro host.
El problema es que en este nuevo host, no me anda y no logro entender por que.
Modifiqué todas las variables acorde a las rutas del nuevo host, pero no se... no quiere andar.
Les dejo el script para ver si me pueden dar una mano.

Código:
LO PONGO EN EL MENSAJE SIGUIENTE, POR QUE NO ENTRA EN ESTE
Muchas gracias!
__________________
Nuestro amo juega al esclavo // de esta tierra que es una herida
que se abre todos los días // a pura muerte, a todo gramo.
Violencia es mentir.
  #2 (permalink)  
Antiguo 16/12/2005, 04:47
Avatar de c0lo  
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires
Mensajes: 281
Antigüedad: 18 años, 9 meses
Puntos: 1
Código:
#!/usr/bin/perl

##############################################################################
# Set Variables

$guestbookurl = "http://www.noventa-grados.com.ar/libro/index.html";
$guestbookreal = "/home/noventa/public_html/libro/index.html";
$guestlog = "/home/noventa/public_html/libro/guestlog.html";
$cgiurl = "http://www.noventa-grados.com.ar/libro/guestbook.cgi";
$date_command = "/bin/date";
$recipient = '[email protected]';

# Set Your Options:
$mail = 0;                      # 0 = Yes; 0 = No
$uselog = 0;                  # 1 = Yes; 0 = No
$linkmail = 0;              # 1 = Yes; 0 = No
$separator = 1;            # 1 = <hr>; 0 = <p>
$redirection = 1;        # 1 = Yes; 0 = No
$entry_order = 1;         # 1 = Newest entries added first;
                                       # 0 = Newest Entries added last.
$remote_mail = 0;         # 1 = Yes; 0 = No
$allow_html = 0;           # 1 = Yes; 0 = No
$line_breaks = 1;	       # 1 = Yes; 0 = No

# If you answered 1 to $mail or $remote_mail you will need to fill out 
# these variables below:
$mailprog = '/usr/sbin/sendmail';

# Done
##############################################################################

# Get the Date for Entry
$date = `$date_command +"%A, %B %d, %Y at %T (%Z)"`; chop($date);
$shortdate = `$date_command +"%D %T %Z"`; chop($shortdate);

# Get the input
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

# Split the name-value pairs
@pairs = split(/&/, $buffer);

foreach $pair (@pairs) {
   ($name, $value) = split(/=/, $pair);

   # Un-Webify plus signs and %-encoding
   $value =~ tr/+/ /;
   $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
   $value =~ s/<!--(.|\n)*-->//g;

   if ($allow_html != 1) {
      $value =~ s/<([^>]|\n)*>//g;
   }

   $FORM{$name} = $value;
}

# Print the Blank Response Subroutines
&no_comments unless $FORM{'comments'};
&no_name unless $FORM{'realname'};

# Begin the Editing of the Guestbook File
open (FILE,"$guestbookreal") || die "No es posible abrir $guestbookreal: $!\n";
@LINES=<FILE>;
close(FILE);
$SIZE=@LINES;

# Open Link File to Output
open (GUEST,">$guestbookreal") || die "No es posible abrir $guestbookreal: $!\n";

for ($i=0;$i<=$SIZE;$i++) {
   $_=$LINES[$i];
   if (/<!--begin-->/) { 

      if ($entry_order eq '1') {
         print GUEST "<!--begin-->\n";
      }
   
      if ($line_breaks == 1) {
         $FORM{'comments'} =~ s/\cM\n/<br>\n/g;
      }

      print GUEST "<b>$FORM{'comments'}</b><br>\n";

      if ($FORM{'url'}) {
         print GUEST "<a href=\"$FORM{'url'}\">$FORM{'realname'}</a>";
      }
      else {
         print GUEST "$FORM{'realname'}";
      }

      if ( $FORM{'username'} ){
         if ($linkmail eq '1') {
            print GUEST " \&lt;<a href=\"mailto:$FORM{'username'}\">";
            print GUEST "$FORM{'username'}</a>\&gt;";
         }
         else {
            print GUEST " &lt;$FORM{'username'}&gt;";
         }
      }

      print GUEST "<br>\n";

      if ( $FORM{'city'} ){
         print GUEST "$FORM{'city'},";
      }
     
      if ( $FORM{'state'} ){
         print GUEST " $FORM{'state'}";
      }

      if ( $FORM{'country'} ){
         print GUEST " $FORM{'country'}";
      }
         print GUEST " - $date<p>\n\n";

      if ($separator eq '1') {
         print GUEST "<hr size=1>";
      }

      if ($entry_order eq '0') {
         print GUEST "<!--begin-->\n";
      }

   }
   else {
      print GUEST $_;
   }
}

close (GUEST);

# Log The Entry

if ($uselog eq '1') {
   &log('entry');
}


#########
# Options

# Mail Option
if ($mail eq '1') {
   open (MAIL, "|$mailprog $recipient") || die "Can't open $mailprog!\n";

   print MAIL "Reply-to: $FORM{'username'} ($FORM{'realname'})\n";
   print MAIL "From: $FORM{'username'} ($FORM{'realname'})\n";
   print MAIL "Subject: Nueva entrada en el Libro de Visitas\n\n";
   print MAIL "Ha recibido una nueva entrada en su libro de visitas:\n\n";
   print MAIL "------------------------------------------------------\n";
   print MAIL "$FORM{'comments'}\n";
   print MAIL "$FORM{'realname'}";

   if ( $FORM{'username'} ){
      print MAIL " <$FORM{'username'}>";
   }

   print MAIL "\n";

   if ( $FORM{'city'} ){
      print MAIL "$FORM{'city'},";
   }

   if ( $FORM{'state'} ){
      print MAIL " $FORM{'state'}";
   }

   if ( $FORM{'country'} ){
      print MAIL " $FORM{'country'}";
   }

   print MAIL " - $date\n";
   print MAIL "------------------------------------------------------\n";

   close (MAIL);
}

if ($remote_mail eq '1' && $FORM{'username'}) {
   open (MAIL, "|$mailprog -t") || die "Can't open $mailprog!\n";

   print MAIL "To: $FORM{'username'}\n";
   print MAIL "From: $recipient\n";
   print MAIL "Subject: Entrada en el libro de visitas\n\n";
   print MAIL "Gracias por ingresar un comentario a mi libro de visitas.\n\n";
   print MAIL "------------------------------------------------------\n";
   print MAIL "$FORM{'comments'}\n";
   print MAIL "$FORM{'realname'}";

   if ( $FORM{'username'} ){
      print MAIL " <$FORM{'username'}>";
   }

   print MAIL "\n";

   if ( $FORM{'city'} ){
      print MAIL "$FORM{'city'},";
   }

   if ( $FORM{'state'} ){
      print MAIL " $FORM{'state'}";
   }

   if ( $FORM{'country'} ){
     print MAIL " $FORM{'country'}";
   }

   print MAIL " - $date\n";
   print MAIL "------------------------------------------------------\n";

   close (MAIL);
}

# Print Out Initial Output Location Heading
if ($redirection eq '1') {
   print "Location: $guestbookurl\n\n";
}
else { 
   &no_redirection;
}

#######################
# Subroutines

sub no_comments {
   print "Content-type: text/html\n\n";
   print "<html><head><title>Faltan los comentarios</title></head>\n";
   print "<body bg color=#3b618e text=black link=blue vlink=navy alink=red>\n";
   print "<center><table width=80%><tr><td width=100%><font face=arial size=2>\n";
   print "<center><h2><b><u><font color=maroon>Ha olvidado ingresar sus comentarios</font></b></u></h2></center><br>\n";
   print "Nosotros realamente apreciariamos que nos deje su comentarios acerca de nuestro sitio. Los comentarios que ingreso\n";
   print "estan en blanco y su registro en el libro de visitas no sera agregado.\n";
   print "Por favor, <a href=\"addguest.html\">regrese</a> y agregue sus comentarios en el formulario!<p>\n";
   print "<hr size=1>\n";
   print "Regrese al <a href=\"$guestbookurl\">Libro de Visitas</a>.";
   print "\n</td></tr></table></body></html>\n";

   # Log The Error
   if ($uselog eq '1') {
      &log('no_comments');
   }

   exit;
}

sub no_name {
   print "Content-type: text/html\n\n";
   print "<html><head><title>Falta el nombre</title></head>\n";
   print "<body bg color=#3b618e text=black link=blue vlink=navy alink=red>\n";
   print "<center><table width=80%><tr><td width=100%><font face=arial size=2>\n";
   print "<center><h2><b><u><font color=maroon>Ha olvidado ingresar su nombre</font></b></u></h2></center><br>\n";
   print "El nombre en el libro de visitas esta en blanco y en consecuencia su entrada en el libro de visitas \n";
   print "no fue agregada\n";
   print "Por favor <a href=\"addguest.html\">regrese</a> y agregue su nombre al formulario!<p>\n";
   print "<hr size=1>\n";
   print "Volver al <a href=\"$guestbookurl\">Libro de Visitas</a>.";
   print "\n</td></tr></table></body></html>\n";

   # Log The Error
   if ($uselog eq '1') {
      &log('no_name');
   }

   exit;
}

# Log the Entry or Error
sub log {
   $log_type = $_[0];
   open (LOG, ">>$guestlog");
   if ($log_type eq 'entry') {
      print LOG "$ENV{'REMOTE_HOST'} - [$shortdate]<br>\n";
   }
   elsif ($log_type eq 'no_name') {
      print LOG "$ENV{'REMOTE_HOST'} - [$shortdate] - ERR: No Name<br>\n";
   }
   elsif ($log_type eq 'no_comments') {
      print LOG "$ENV{'REMOTE_HOST'} - [$shortdate] - ERR: No ";
      print LOG "Comments<br>\n";
   }
}

# Redirection Option
sub no_redirection {

   # Print Beginning of HTML
   print "Content-Type: text/html\n\n";
   print "<html><head><title>Gracias $FORM{'realname'} por firmar el Libro de Visitas</title></head>\n";
   print "<body bgcolor=#3b618e link=blue vlink=navy alink=red><center>\n";
   print "<table width=80% valign=top><tr><td width=100%><font face=arial size=2>\n";
   print "<center><h2><b><u><font color=maroon>Gracias $FORM{'realname'} por firmar el Libro de Visitas</font></b></u></h2></center><br>\n";

   # Print Response
   print "Gracias por firmar el libro de visitas. Su entrada ha sido agregada.\n";
   print "Esto es lo que ha agregado:<hr size=1>\n";
   print "<br><b>$FORM{'comments'}</b><br>\n";

   if ($FORM{'url'}) {
      print "<a href=\"$FORM{'url'}\">$FORM{'realname'}</a>";
   }
   else {
      print "$FORM{'realname'}";
   }

   if ( $FORM{'username'} ){
      if ($linkmail eq '1') {
         print " &lt;<a href=\"mailto:$FORM{'username'}\">";
         print "$FORM{'username'}</a>&gt;";
      }
      else {
         print " &lt;$FORM{'username'}&gt;";
      }
   }

   print "<br>\n";

   if ( $FORM{'city'} ){
      print "$FORM{'city'},";
   }

   if ( $FORM{'state'} ){
      print " $FORM{'state'}";
   }

   if ( $FORM{'country'} ){
      print " $FORM{'country'}";
   }

   print " - $date<p>\n";

   # Print End of HTML
   print "<hr size=1>\n";
   print "<a href=\"$guestbookurl\">Volver al Libro de Visitas</a>\n";        
   print "- Quiza deba volver a cargar la pagina para ver su nueva entrada.\n";
   print "</td></tr></table></body></html>\n";

   exit;
}
__________________
Nuestro amo juega al esclavo // de esta tierra que es una herida
que se abre todos los días // a pura muerte, a todo gramo.
Violencia es mentir.
  #3 (permalink)  
Antiguo 16/12/2005, 06:52
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Lo único que tienes que ver como está es la cabecera, el resto no lo debes tocar...

Código:
#!/usr/bin/perl

##############################################################################
# Set Variables

$guestbookurl = "http://www.noventa-grados.com.ar/libro/index.html";
$guestbookreal = "/home/noventa/public_html/libro/index.html";
$guestlog = "/home/noventa/public_html/libro/guestlog.html";
$cgiurl = "http://www.noventa-grados.com.ar/libro/guestbook.cgi";
$date_command = "/bin/date";
$recipient = '[email protected]';

# Set Your Options:
$mail = 0;                      # 0 = Yes; 0 = No
$uselog = 0;                  # 1 = Yes; 0 = No
$linkmail = 0;              # 1 = Yes; 0 = No
$separator = 1;            # 1 = <hr>; 0 = <p>
$redirection = 1;        # 1 = Yes; 0 = No
$entry_order = 1;         # 1 = Newest entries added first;
                                       # 0 = Newest Entries added last.
$remote_mail = 0;         # 1 = Yes; 0 = No
$allow_html = 0;           # 1 = Yes; 0 = No
$line_breaks = 1;	       # 1 = Yes; 0 = No

# If you answered 1 to $mail or $remote_mail you will need to fill out 
# these variables below:
$mailprog = '/usr/sbin/sendmail';

# Done
##############################################################################
Lo primero que debes saber es que tipo de error te está tirando, para eso checkea tu errorLOG de tu servidor, Checkea bien de haberlo subido al servidor en forma de askii ( como los HTML ) y de haberle cambiado los permisos de ejecución a chmod 755...

Checkea eso y dime si te funciona...

Saludos
__________________
Esteban Quintana
  #4 (permalink)  
Antiguo 16/12/2005, 07:46
Avatar de c0lo  
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires
Mensajes: 281
Antigüedad: 18 años, 9 meses
Puntos: 1
Anduvo!!!!

habia que cambiarle los permisos 755 !!!

Mil gracias!!!
__________________
Nuestro amo juega al esclavo // de esta tierra que es una herida
que se abre todos los días // a pura muerte, a todo gramo.
Violencia es mentir.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:20.