#!/usr/bin/perl ############################## #Sistema de reservacioness y correo electrónico #Autor: Ing. Ricardo Rodríguez #Agosto 2001 #e-mail: ricrodr@usa.net #Adaptado para RTX por ntmq 12/12/01 #Adaptado para PdA por jlft 091202 ############################## use DBI; $SENDMAIL = '/usr/sbin/sendmail'; $recibe = 'fratermex'; $res1 = 0; $res2 = 0; procesa_entrada(); if ($get) { imprime_forma_inicial(); } else { $res0 = comprueba_entrada(); if ($res0) { $res2 = envia(); if ($res2) { confirma(); } else { falla(); } } } print < FINAL ################################################## # FALLA # Imprime la pantalla de error ################################################## sub falla { print < Reservacion El Aguacero

SOLICITUD DE RESERVACION

 

aguacero\@xalapa.net



Lo sentimos, el sistema no pudo completar su reservación,
por favor intente de nuevo o use directamente nuestro correo electrónico. Gracias.



Reintentar



Concepción y realización : Frater Consultant para los socios de RTX

BLOQUE } ################################################## ################################################## # CONFIRMA # Imprime la pantalla de agradecimiento ################################################## sub confirma { %seccion = ('1','El Bien Amado','2','La Cofradia','3','La Moraleja','4','La Pringa','5','La Realidad','6','El Amaranto','7','El Amparo',); $aux = int($entrada{'seccion'}); print < Reservacion El Aguacero

POSADA DEL AGUACERO - RESERVACION

aguacero\@xalapa.net



Su solicitud ha sido enviada - Gracias por su preferencia.

Fecha de llegada: $entrada{'f_llegada'}
Fecha de salida: $entrada{'f_salida'}
Hora de llegada: $entrada{'h_llegada'}
Número de personas: $entrada{'n_personas'}
Cabaña solicitada: $seccion{$aux}
Nombre: $entrada{'nombre'}
Apellidos: $entrada{'apellidos'}
Ocupación: $entrada{'ocupacion'}
Institución o Empresa: $entrada{'instit_o_empresa'}
Puesto o Cargo: $entrada{'puesto'}
Dirección: $entrada{'direccion'}
Pais: $entrada{'pais'}
Correo electrónico: $entrada{'email'}
Teléfono: $entrada{'telefono'}
Sus precisiones: $entrada{'comentarios'}

Le contestaremos sin demora para comunicarle nuestras disponibilidades.


Concepción y realización :Frater Consultant para los socios de RTX

BLOQUE } ################################################## ################################################## # ENVIA # Manda un e-mail a $recibe con los datos de regístrate ################################################## sub envia { open (MAIL, "| $SENDMAIL posadadelaguacero\@hotmail.com, $recibe\@xal.megared.net.mx") or return 0; print MAIL "To: $recibe\@xalapa.net\n"; @aux = split('\@', $entrada{'email'}); $aux[0] =~ s/ //g; $aux[1] =~ s/ //g; print MAIL "From: $aux[0]\@$aux[1]\n"; print MAIL "Subject: Reservacion Aguacero\n"; print MAIL "X-Comments: ===========================================\n"; print MAIL "\n"; print MAIL "\n"; print MAIL "\n"; print MAIL "fecha llegada: $entrada{'f_llegada'}\n"; print MAIL "fecha salida: $entrada{'f_salida'}\n"; print MAIL "horr llegada: $entrada{'h_llegada'}\n"; print MAIL "num. personas:$entrada{'n_personas'}\n"; %seccion = ('1','El Bien Amado','2','La Cofradia','3','La Moraleja','4','La Pringa','5','La Realidad','6','El Amaranto','7','El Amparo',); $aux = int($entrada{'seccion'}); print MAIL "seccion: $seccion{$aux}\n"; print MAIL "\n"; print MAIL "nombre: $entrada{'nombre'}\n"; print MAIL "apellidos: $entrada{'apellidos'}\n"; print MAIL "ocupacion: $entrada{'ocupacion'}\n"; print MAIL "empresa: $entrada{'instit_o_empresa'}\n"; print MAIL "puesto: $entrada{'puesto'}\n"; print MAIL "direccion: $entrada{'direccion'}\n"; print MAIL "país: $entrada{'pais'}\n"; print MAIL "email: $entrada{'email'}\n"; print MAIL "telefono: $entrada{'telefono'}\n"; print MAIL "precisiones: $entrada{'comentarios'}\n"; print MAIL "\n"; close (MAIL); return 1; } ################################################## ################################################## # COMPRUEBA_ENTRADA # Valida los datos capturados y no sale hasta que se complete adecuadamente la forma ################################################## sub comprueba_entrada { print "Content-Type: text/html\n\n"; if (($entrada{'f_llegada'} eq '') || ($entrada{'f_salida'} eq '') || ($entrada{'h_llegada'} eq '') || ($entrada{'n_personas'} eq '') || ($entrada{'nombre'} eq '') || ($entrada{'apellidos'} eq '') || ($entrada{'direccion'} eq '') || ($entrada{'pais'} eq '') || ($entrada{'email'} eq '') || ($entrada{'email'} !~ /@/) || ($entrada{'telefono'} eq '')) { if($entrada{'seccion'} eq '01') {$e01 = "selected"} else {$e01 = ''} if($entrada{'seccion'} eq '02') {$e02 = "selected"} else {$e02 = ''} if($entrada{'seccion'} eq '03') {$e03 = "selected"} else {$e03 = ''} if($entrada{'seccion'} eq '04') {$e04 = "selected"} else {$e04 = ''} if($entrada{'seccion'} eq '05') {$e05 = "selected"} else {$e05 = ''} if($entrada{'seccion'} eq '06') {$e06 = "selected"} else {$e06 = ''} if($entrada{'seccion'} eq '07') {$e07 = "selected"} else {$e07 = ''} print < Reservacion Aguacero

RESERVACION - POSADA DEL AGUACERO

Favor de llenar todos los campos marcados con *.

Fecha llegada: BL01 if ($entrada{'f_llegada'} eq '') { print " *"; } print <
Fecha salida: BL02 if ($entrada{'f_salida'} eq '') { print " *"; } print <
Hora de llegada: BL03 if ($entrada{'h_llegada'} eq '') { print " *"; } print <
Número de personas: BL04 if ($entrada{'n_personas'} eq '') { print " *"; } print <
Cabaña:
Nombre: BL05 if ($entrada{'nombre'} eq '') { print " *"; } print <
Apellidos: BL06 if ($entrada{'apellidos'} eq '') { print " *"; } print <
Ocupación:
Institución o Empresa:
Puesto o Cargo:
Dirección: BL07 if ($entrada{'direccion'} eq '') { print " *"; } print <
País: BL08 if ($entrada{'pais'} eq '') { print " *"; } print <
Correo electrónico: BL09 if (($entrada{'email'} eq '')||($entrada{'email'} !~ /@/)) { print " *"; } print <
Teléfono: BL10 if (($entrada{'telfono'} eq '')) { print " *"; } print <
Sus comentarios:

aguacero\@xalapa.net

 

Concepción y realización : Frater Consultant para los socios de RTX

BL11 return 0; } else { return 1; } } ################################################## ################################################## # IMPRIME_FORMA_INICIAL # Imprime la primera pantalla de registro ################################################## sub imprime_forma_inicial { print "Content-Type: text/html\n\n"; print < Reservacion Aguacero

POSADA DEL AGUACERO - SOLICITUD DE RESERVACION

Favor de completar la forma con los datos solicitados.

Fecha de llegada: *
Fecha de salida: *
Hora de llegada: *
Número de personas: *
Cabaña solicitada: *
Nombre: *
Apellidos: *
Ocupación:
Institución o Empresa:
Puesto o Cargo:
Dirección: *
Pais: *
Correo electrónico: *
Teléfono: *
Sus precisiones:

 

Concepción y realización : Frater Consultant para los socios de RTX

BLOQUE } ################################################## ################################################## # PROCESA_ENTRADA # Lee la cadena del CGI y separa por $entrada{'elemento'} = valor # define además el método de envío $get=1 -> GET, $get=0 -> POST # la cadena original queda en $orden ################################################## sub procesa_entrada { if ($ENV{'REQUEST_METHOD'} eq 'GET') { $orden = $ENV{'QUERY_STRING'}; $get = 1; } else { $orden = ; $get = 0; } @pares = split( '&', $orden); foreach $i (@pares){ $j = $i; $j =~ s/%(..)/pack("c",hex($1))/ge; $j =~ s/\+/ /g; # $j =~ s/\n/ /g; # $j =~ s/\r/ /g; ($nombre, $valor) = split('=', $j); $entrada{$nombre} = $valor; } } ##################################################