
16/12/2005, 04:47
|
 | | | Fecha de Ingreso: julio-2005 Ubicación: Buenos Aires
Mensajes: 281
Antigüedad: 19 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 " \<<a href=\"mailto:$FORM{'username'}\">";
print GUEST "$FORM{'username'}</a>\>";
}
else {
print GUEST " <$FORM{'username'}>";
}
}
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 " <<a href=\"mailto:$FORM{'username'}\">";
print "$FORM{'username'}</a>>";
}
else {
print " <$FORM{'username'}>";
}
}
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. |