# $Id$ # Ordering form processor of 'My::Project::hotelgate' # Copyright (C) 2005 Jan Kratochvil # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; exactly version 2 of June 1991 is required # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA package product::hotelgate::OrderSubmit; require 5.6.0; # at least 'use warnings;' but we need some 5.6.0+ modules anyway our $VERSION=do { my @r=(q$Revision$=~/\d+/g); sprintf "%d.".("%03d"x$#r),@r; }; our $CVS_ID=q$Id$; use strict; use warnings; use My::Web; use Apache2::Const qw(HTTP_MOVED_TEMPORARILY); use Carp qw(confess cluck); require MIME::Entity; my $SENDER='HotelGate of www.jankratochvil.net '; my $FROM=$SENDER; my $TO=$SENDER; our $HTML_TEST="download"; our $HTML_TEST_RC=HTTP_MOVED_TEMPORARILY; sub handler { my $W=My::Web->init( "http_safe"=>0, ); my @fields=qw( email address location type downlink uplink comment ); my %fields=map(($_=>1),@fields); # Required fields: for my $field (qw( type email )) { cluck if !$fields{$field}; next if $W->{"args"}{$field}; $W->{"args_persistent"}{$_}=1 for @fields; My::Web->http_moved("./Order.pm?error=".product::hotelgate::Order->error("${field}_missing"),HTTP_MOVED_TEMPORARILY); confess "NOTREACHED"; } my $data=""; $data.=<<"HERE" for @fields; $_: @{[ $W->{"args"}{$_} ]} HERE for (qw( User-Agent Referer _remote_ip X-Forwarded-For )) { next if !defined $W->{"headers_in"}{$_}; $data.=<<"HERE" headers_in::$_=@{[ $W->{"headers_in"}{$_} ]} HERE } $data.=<<"HERE"; EOF HERE my $top=MIME::Entity->build( "Sender"=>$SENDER, "From"=>$FROM, "To"=>$TO, "Data"=>$data, ); $top->smtpsend(); My::Web->http_moved("./Order.pm?error=".product::hotelgate::Order->error("ok"),HTTP_MOVED_TEMPORARILY); confess "NOTREACHED"; } 1;