#!/usr/bin/perl # # Tomamos la entrada # # Gestion de entradas read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); $QUERY_STRING="$ENV{'QUERY_STRING'}"; $QUERY_STRING=~ s/\///g; $QUERY_STRING=~ s/\%//g; $QUERY_STRING=~ s/ofertas/oferta/g; if ($QUERY_STRING =~ /crucero/ or $QUERY_STRING =~ /especial/ or $QUERY_STRING =~ /oferta/ or $QUERY_STRING =~ /ofertas/ or $QUERY_STRING =~ /anterior/ or $QUERY_STRING =~ /siguiente/ or $QUERY_STRING =~ /consultas/) { $| = 1; $buffer =~ /^(.+)\r\n/; $bound = $1; @pairs = split(/$bound/,$buffer); @var = split(/\r\n/, $pairs[0]); @namer = split(/\r\n/, $pairs[2]); @actionr = split(/\r\n/, $pairs[3]); $name = $namer[3]; $pairs[2] = $pairs[1]; ($tipo,$destino,$refoferta,$afiliado,$titulo) = split(/-/, $QUERY_STRING); } else { if ($ENV{'QUERY_STRING'}) { $buffer = "$buffer\&$ENV{'QUERY_STRING'}"; } # Split para los pares name-value @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///g; $FORM{$name} = $value; $opcion = $FORM{'opcion'}; $accion = $FORM{'accion'}; $idioma = $FORM{'idioma'}; } } ######################################### #Quitamos la Extension (.htm o .html) ($destino,$ext) = split(/\./, $destino); ($refoferta,$ext) = split(/\./, $refoferta); ($afiliado,$ext) = split(/\./, $afiliado); ($titulo,$ext) = split(/\./, $titulo); $destino=~ s/_/ /g; $titulo=~ s/porcien/%/g; ######################################### # fin de la entrada # #print "Content-type: text/html\n\n"; #print "Hola: Tipo:$tipo, Destino:$destino, RefOferta:$refoferta, Afiliado:$afiliado, Titulo:$titulo, Idioma:$idioma
\n\n"; #print "Hola: $QUERY_STRING
\n\n"; #print "Hola: $query
\n\n"; #exit; ######################################################## #Usamos las librerias de acceso a BD ######################################################## use DBI; my $base_datos_gb="global_bookings"; #Nombre de las base de datos my $usuario_db_gb="globalb"; #Usuario de la BD my $password_db_gb="ravana"; #Password de la BD my $tabla_ofertas="bookingfax"; #Nombre de la tabla de Ofertas my $base_datos="bco_cruceros"; #Nombre de las base de datos my $usuario_db="bcocruceros"; #Usuario de la BD my $password_db="ravana"; #Password de la BDmy $tabla_cruceros="cruceros"; #Nombre de la tabla de Cruceros my $tabla_barcos="barcos"; #Nombre de la tabla de barcos my $driver="mysql"; #Utilizamos el driver de mysql ######################################################## $date_command = "/bin/date"; # $mailprog = '/usr/sbin/sendmail'; # # cogemos la ruta de las imagenes # #$path_img = "http://hotels.global-bookings.com/fotos.cgi?"; # # # Dominio principal # $empresa = 'BCO Cruceros'; $dominio = 'http://www.bcocruceros.com/'; $mailempresa = 'travel@booking-centre-online.com'; #$ruta_plantillas = "http://hotels.global-bookings.com"; # Dominio del cual sacaremos datos # $dominiodest="http://www.travelcruceros.com/"; $year=&sys_date; # # tomamos el IP del usuario # $ip=$ENV{'REMOTE_ADDR'}; ########################################## #Variables para entrar a Pelo. ########################################## #$accion="enter" if($accion eq ""); $afiliado="bco" if($afiliado eq ""); $idioma="es" if($idioma eq ""); ########################################## $afiliado=~ s/-/_/g; #(Cambiamos los Guiones por SubGuiones para evitar Conflictos de URL's) require "/home/cruceros/cgi-bin/selectores.cgi"; &sacar_destinos_proveedores; ################################################ #Llamadas a Subrutinas ################################################ if($tipo eq "consultas") { print "Content-type: text/html\n\n"; &cabecera; print "
\n"; &form; &menu_cruceros; &menu; print "
\n"; &pie; exit; } ################################################ ######################################## #Imprimimos los datos en Pantalla print "Content-type: text/html\n\n"; #&cabecera; $encontrado="no"; my $dbh = DBI->connect("dbi:$driver:$base_datos_gb",$usuario_db_gb,$password_db_gb) || die "\nError al abrir la base datos: $DBI::errstr\n"; my $sth = $dbh->prepare("SELECT ref,fecha,fechadesde,fechahasta,tipo,destino,titulo,precio,proveedor,imagen FROM $tabla_ofertas WHERE ref=$refoferta;"); $sth->execute(); while ( @campo=$sth->fetchrow_array()) { $ref=$campo[0];$fecha=$campo[1];$fechadesde=$campo[2];$fechahasta=$campo[3];$tipo=$campo[4]; $destino=$campo[5];$titulo=$campo[6];$precio=$campo[7];$proveedor=$campo[8];$imagen=$campo[9]; #print "Oferta de Crucero en $destino\n\n"; $destino=$titulo; &cabecera; $encontrado="si"; $referrer="$ENV{'HTTP_REFERER'}"; print < $titulo Oferta de Crucero en $destino - $titulo
INFORMACION
Y RESERVAS
Tipo de Consulta:
Su Nombre:
Su Email:
Su Telefono:
Que Crucero/Destino:
Fechas Preferidas:
Cuantos Viajeros (y Edades):
Categoria Camarote Preferido:
Comentario:

HTML } $dbh->disconnect || warn "\nFallo al desconectar.\nError: $DBI::errstr\n"; $sth->finish(); ############################ # En caso de Oferta caducada &cabecera if($encontrado eq "no"); print " Lo siento: Esta oferta ya no esta disponible, busque otras ofertas en los siguientes destinos:

\n" if($encontrado eq "no"); &menu if($encontrado eq "no"); print "
\n" if($encontrado eq "no"); ############################ &pie; exit; ################################################ ################################################ #Menu con Links a Ofertas de Bookingfax sub menu{ print < OFERTAS ESPECIALES POR DESTINO:
Alaska | Canarias | Caribe | Exclusivos | Fluviales | Mares lejanos | Mediterraneo | Norte Europa | Transatlanticos HTML } ################################################ sub fecha { local ($date); # Get the Date for Entry $date = `$date_command +"%Y%B%d"`; chop($date); $date =~ s/January/01/g; $date =~ s/February/02/g; $date =~ s/March/03/g; $date =~ s/April/04/g; $date =~ s/May/05/g; $date =~ s/June/06/g; $date =~ s/July/07/g; $date =~ s/August/08/g; $date =~ s/September/09/g; $date =~ s/October/10/g; $date =~ s/November/11/g; $date =~ s/December/12/g; $date =~ s/at/a las/g; return ($date); } ################################################ #######FECHA 2################################## sub sys_date { %mn = ('Jan','01', 'Feb','02', 'Mar','03', 'Apr','04', 'May','05', 'Jun','06', 'Jul','07', 'Aug','08', 'Sep','09', 'Oct','10', 'Nov','11', 'Dec','12' ); $sydate=localtime(time); ($day, $month, $num, $time, $year) = split(/\s+/,$sydate); $zl=length($num); $num_1=$num+1; if ($zl == 1) { $num = "0$num"; $num_1 = "0$num_1"; } $dd_mm_yyyy="$num\-$mn{$month}\-$year"; $dd_mm_yyyy_1="$num_1\-$mn{$month}\-$year"; $yyyy_mm_dd="$year\-$mn{$month}\-$num"; $yyyymmdd="$year$mn{$month}$num"; $monthnum=$mn{$month}; $year=$year; return $year; } ################################################ ################################### ####COLOCAR CABECERA RESULTADOS#### sub cabecera { $destino="todo incluido" if($destino eq ""); open(CABECERA, "plantillas/bco/cabecera_$idioma.txt"); while() { chomp; ($linea) = split(/\|/,$_,1); $linea=~ s/variable\(afiliado\)/$afiliado/g; $linea=~ s/variable\(idioma\)/$idioma/g; $destino=$titulo if($titulo ne ""); $linea=~ s/variable\(destino\)/$destino/g; $linea=~ s/variable\(proveedor\)/"BCO Cruceros"/g; $linea=~ s/variable\(nombrebarco\)/"OfertasFax"/g; print "$linea\n"; } close(CABECERA); } ################################### ####COLOCAR PIE RESULTADOS#### sub pie { open(PIE, "pie_$idioma.txt"); while() { chomp; ($linea) = split(/\|/,$_,1); $linea=~ s/variable\(afiliado\)/$afiliado/g; $linea=~ s/variable\(destino\)/$destino/g; print "$linea\n"; } close(PIE); } ################################### ####COLOCAR PIE RESULTADOS#### sub form { open(FORM, "form_$idioma.html"); while(
) { chomp; ($linea) = split(/\|/,$_,1); $linea=~ s/variable\(afiliado\)/$afiliado/g; $linea=~ s/variable\(destino\)/$destino/g; #$linea=~ s/variable\(titulo\)/$titulo/g; #$linea=~ s/variable\(refoferta\)/http:\/\/www\.bcocruceros.com\/oferta\-\-$refoferta\.htm/g if($refoferta ne ""); $linea=~ s/variable\(refoferta\)/http:\/\/www\.bcocruceros\.com\/oferta_especial--$refofertav-$afiliado-$idioma\.htm<\/a>/g if($refoferta ne ""); $linea=~ s/variable\(refoferta\)//g if($refoferta eq ""); $referrer="$ENV{'HTTP_REFERER'}"; $linea=~ s/variable\(referrer\)/$referrer/g; print "$linea\n"; } close(FORM); } ################################### ####COLOCAR MENU CRUCEROS#### sub menu_cruceros { open(MENUCRUCEROS, "menu_$idioma.html"); while() { chomp; ($linea) = split(/\|/,$_,1); $linea=~ s/variable\(afiliado\)/$afiliado/g; $linea=~ s/variable\(idioma\)/$idioma/g; if ($linea=~ /SELECTOR\[DESTINOS\]/) {&selector_destinos;} $linea=~ s/SELECTOR\[DESTINOS\]//g; if ($linea=~ /SELECTOR\[PROVEEDORES\]/) {&selector_proveedores;} $linea=~ s/SELECTOR\[PROVEEDORES\]//g; if ($linea=~ /SELECTOR\[BARCOS\]/) {&selector_barcos;} $linea=~ s/SELECTOR\[BARCOS\]//g; if ($linea=~ /SELECTOR\[FECHAS\]/) {&selector_fechas;} $linea=~ s/SELECTOR\[FECHAS\]//g; print "$linea\n"; } close(MENUCRUCEROS); } ###################################