- Zugriffe: 118103
Betreiber dieser Webseite gemäß §5 TMG:
RSG - ReiseService Glaser
82061 Neuried (bei München)
Tel.: +49 (0)89 759 63 14
Fax: +49 (0)89 759 61 14
Mail: Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
vertreten durch:
W. Glaser
Umsatzsteuer-Identifikationsnummer gemäß §27a Umsatzsteuergesetz
USt-ID: DE13336396
Verantwortlich für den Inhalt nach § 55 Abs. 2 RStV:
W. Glaser, Grundstr. 4c, 82061 Neuried
Außerdem finden Sie uns unter
Haftung für Inhalte
Die Inhalte unserer Seiten wurden mit größter Sorgfalt erstellt. Für die Richtigkeit, Vollständigkeit und Aktualität der Inhalte können wir jedoch keine Gewähr übernehmen. Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen.
Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.
Haftung für Links
Unser Angebot enthält Links zu externen Webseiten Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar.
Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen.
Urheberrecht
Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet.
Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.
Datenschutz
Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder eMail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben.
Hier finden Sie unsere Datenschutzerklärung
- Zugriffe: 149637
"It is yachting - not cruising!" - das beschreibt die zwei Yachten des Seadream Yachtclub, die SeaDream I und SeaDream II, wohl am besten. Exklusiver Service, bei dem bereits alles im Preis enthalten ist, Häfen, die die grossen Schiffe nicht anlaufen und das alles in lockerer Atmosphäre ohne Frack und Schlips.
Sie fühlen sich wie auf einer privaten Yacht. Genießen unübertroffenen Service. Fahren dorthin, wo die großen Schiffe nicht sind. Entspannen an Deck, wählen unter den vielen Sportmöglichkeiten oder springen von der Marina ins Wasser. Wissen nicht, ob Sie vom Sternenhimmel oder vom 5-Sterne Menü schwärmen sollen.
Unsere Tipps zum Nachlesen:
Eberts Bordbuch: Der Smoking bleibt daheim; H.-D. Ebert überkommt auf SeaDream das Yachtfieber. Entnommen aus: Der Feinschmecker Uwe Bahn: LUXUS - LOCKER UND LEGER; Eine Reise auf der SeaDream II Entnommen dem Reise - Lifestyle Magazin Feel Good |
Egal ob als Charter, Incentive, unvergesslicher Ort einer Veranstaltung oder einfach als Urlaub - diese Reise wird Ihre Erwartungen übertreffen!
Beide Yachten bieten für jeweils maximal 110 Gäste, die von 95 Besatzungsmitgliedern umsorgt werden, ein traumhaftes „all-inclusive-Paket". Ein Konzept, das neben dem ungewöhnlich persönlichen Service sämtliche Gourmet-Mahlzeiten an Bord, alle Getränke, Trinkgelder, sowie die zahlreichen Sportmöglichkeiten (Jet-Ski, Kajaks, Banana-Boat, Wasserski, Segeljollen, Mountainbikes, Golfsimulator und Fitness-Center) sowie Trinkgelder umfasst. Sie müssen sich um wirklich nichts mehr kümmern...
Weitere Informationen finden Sie auch unter https://seadream-yachten.de
Informationen und Filme
- Zugriffe: 39237
It´s yachting - not cruising
Weitere Informationen finden Sie auch unter https://seadream-yachten.de
Eine Reise auf einer dieser beiden Yachten läßt sich schwer mit anderen Kreuzfahrten vergleichen. Die Gäste pflegen eine "Yachting Attitude" und trotzdem fehlt es an nichts.
Der Bartender kennt nicht nur Ihren Namen, sondern auch Ihr liebstes Getränk. Ein aufmerksamer, gleichwohl unauffälliger Service macht dabei die Wahl zwischen süßem Nichtstun und den vielen Möglichkeiten individueller Freizeitgestaltung schwer. Denn natürlich ist das Angebot auch hier vielfältig. An Bord finden Sie ein Spa mit Fitness-Center, ein Golf-Simulator darf, genauso wie ein Casino, nicht fehlen, Flat-screen TV in Ihrer Kabine mit CDs und DVDs zum Ausleihen sowie Laptops mit Internetzugang. Nicht nur von der Badeplattform aus bestehen vielfältige Sportmöglichkeiten, Sie können Ihr Zielgebiet auch auf Fahrrädern erkunden. Das schönste aber sind die Balinesischen Betten auf Deck. Hier können Sie sogar eine Nacht unter freiem Himmel verbringen ...
SeaDream I & SeaDream II
- technische Daten - |
||
Bruttoreg.: 4.300 t | Länge: 104,85m | Breite: 14,32m |
Kabinen: 55 | Passagiere: 110 | Besatzung: 95 |
Decks: 6 (davon 5 f. Passagiere) | Baujahr: 1984/85 |
Die SeaDream I & SeaDream II wurden als Luxusyachten entworfen und in Finnland auf der Warsila Werf gebaut. Sie liefen im April 1984 bzw. Mai 1985 als Sea Goddess I und Sea Goddess II vom Stapel. Nach mehreren Eigentümerwechsel, bei denen die beiden Yachten für die Seabourn Cruise Line zum Einsatz kamen, erwarb im Sommer 2001 der Sea Dream Yacht Club die beiden Schiffe. Sie wurden komplett renoviert und nahmen 2002 unter dem Namen SeaDream I und SeaDream II den Dienst auf. 2006 bzw. 2007 wurden sie nochmals renoviert.
Entstanden sind dabei zwei moderne, äußerst ansprechende Schiffe im Stil von privaten Luxusyachten. Treffpunkt ist nun die ganz in warmen Holztönen gehaltene Bar "Top of the Yacht", wo man auch leger im Freien speisen kann. Achtern befinden sich acht Doppelbetten mit dicken Auflagen, die auch zum Übernachten unter offenen Himmel einladen. Auf Bedarf erhalten Sie natürlich dafür Schlafanzüge. Im vorderen Bereich finden Sie mehr Liegen, Hängematten und einen Golf-Simulator.
Innen ist die Yacht elegant und chic eingerichtet. Die Lounge ist im Stil eines großzügigen Wohnzimmers gehalten, die Piano Bar ist gemütlich, das Casino darf nicht fehlen und in der Bücherei stehen 1.200 Bände zur Verfügung. Das Spa beinhaltet ein kleines Fitness Center, drei Massageräume, eine Sauna und ein türkisches Dampfbad.
Technisch sind beide Yachten natürlich auf dem modernstem Stand, besitzen Stabilisatoren und entsprechen dem SOLAS 2005 First Safety Standards.
- Zugriffe: 36139
Seadream I & Seadream II
Deckplan
7. Lounging Deck 8. Bücherei 9. Piano Bar 10. Casino 11. Admiral Suite
12. SeaDream Spa – Fitness Center – Beauty Salon
3. Pool Bar 4. Card Room 5. Main Salon / Main Salon Bar 6. Concierge / SeaDream Boutique
1. ausfahrbare Plattform für Wassersport & Marina 2. Restaurant / Konferenzraum
Weitere Informationen finden Sie auch unter https://seadream-yachten.de
- Zugriffe: 36131
Kabinen & Layout
Die Kabinen sind großzügig. Gefallen hat uns, dass die Betten im hinteren Bereich am Fenster stehen und vom vorderen Bereich der Kabine mit einem Vorhang abgetrennt werden können.
Wer gerne mehr Platz zur Verfügung hat belegt eine Commodore Suite, bei der zwei Kabinen nach Ihren Wünschen zusammen gelegt werden.
Exklusivität ist in der Owner-Suite gewährleistet. Die gibt es auf jeder Yacht nur einmal.
Innerhalb der Kategorien sind die Kabinen sind auf allen Decks gleich. Lediglich die Fenster unterscheiden sich. Während auf Deck 2 Bullaugen zu finden sind haben die Kabinen auf den höheren Decks große Fenster.
Kabinen & Layouts:
Alle 54 Kabinen an Bord haben Fenster oder Bullauge und messen ca. 18m².
16 dieser Kabinen können zu einer Commodore Suite kombiniert werden (Deck 3 - 304/306; 320/322; 303/305; 317/319; Deck 2 - 204/206; 208/210; 203/205; 207/209).
Die Commodore Suiten haben entweder zwei separate, voll ausgestattete Räume oder einen Schlaf- und einen Wohnraum.
Die Owner´s Suite besteht aus Wohn- und Schlafraum, Bad und Gästetoilette. Sie misst insgesamt 42m².
In allen Kategorien finden Sie :
-
-
- Ein Entertainment Center mit Flachbildschirm, TV, DVD und CD Player
- Zugang zum Internet. Laptops können auf Anfrage gestellt werden
- Badezimmer aus Marmor mit "multi-jet-Massage" Dusche und Accessoires von Bvlgari®
- Feinste Bettwäsche aus Daunen mit verschiedenen Kopfkissen, Decken oder Federbetten
- SeaDream's Bademäntel und Slipper aus 100% Baumwolle
- Minibar mit Getränken Ihrer Wahl
- Persönliches Briefpapier, Telefon, Safe, Klimaanlage und Fön
- Einen Zimmerservice, der Sie rund um die Uhr verwöhnt
-
Weitere Informationen finden Sie auch unter https://seadream-yachten.de
- Zugriffe: 43525
Dialysekreuzfahrten ASTOR
Die ASTOR steht für klassische Kreuzfahrttradition, nicht nur weil das Schiff ganz in weiß sehr elegant aussieht. Mit maximal 578 Passagieren gehört die ASTOR zu den eher kleinen Schiffen.
Das verspricht interessante Routen und eine persönliche Atmosphäre an Bord, zumal die Bordsprache Deutsch ist.
Dialysekreuzfahrten ASTOR:
#!/usr/bin/perl
print "Content-type: text/html"."\n\n";
#################################################
# #
# readCSVPlus v3.0 #
# Copyright 2001 by Dominik Strnad #
# litinoveweedle@cmail.cz #
# http://web.redbox.cz/litinoveweedle@cmail.cz #
# #
# Last modified on Feb. 6, 2001 #
# #
#################################################
#
# Copyright Notice:
# Copyright 2001 Dominik Strnad. All Rights Reserved.
#
# This code may be used and modified by anyone so long as this header and
# copyright information remains intact. By using this code you agree to
# indemnify Dominik Strnad from any liability that might arise from its
# use. You must obtain written consent before selling or redistributing
# this code.
#
# part of this code is used from original CSV scrits from http://ezscripting.com
# provided by Mutasem Abudahab. THX to him. LiTin'Ove Weedle 2001
#
# tested on Win9X, Sambar web server, Activestate Perl 5.6.0 build620 by LiTinOveWeedle
# tested on Linux RedHat, Apache, Perl by David Lingerak THX
#
# -------------------------------------------------------------------------
# main program body - no changes needed under this line
use CGI qw(:standard);
use locale;
$config = param('config');
if ( $config =~ /^([.\w]+)$/ ) {
$config = $1;
require "$config";
&logging("config file read");
}
else { die; }
&logging("#script readcsvplus started");
&check_cgi;
&logging("cgi values security check");
&read_file;
&logging("database file read");
&read_cgi;
&logging("cgi values read, sorting and querying done");
if ( $first_rec > @file or @file == 0 ) {
&no_record;
&logging("html 'no record page' was printed");
}
else {
&print_template;
&logging("html 'read template page' was printed");
}
# -------------------------------------------------------------------------
# security check data from cgi form
sub check_cgi {
my ( $value, $name, $field );
foreach $name ( param() ) {
$value = param($name);
if ( $value =~ /^([$security\w<>=]*)$/ ) {
$value = $1;
$value =~ s/$delimiter/$notdelimiter/g;
param($name,$value);
}
else {
&produce_error( 4, $security );
&logging("entered bad string - possible security violation");
die;
}
}
while ( $i < @referer ) {
$test = $referer[$i] . url(-relative=>1);
if ( $test eq url() ) { last; }
elsif ( $i + 1 >= @referer ) {
&produce_error( 8, url() );
&logging("URL refferer does not contain any of enabled domains");
die;
}
else { $i++; }
}
}
# -------------------------------------------------------------------------
# read data from file to array
sub read_file {
my ( $line );
if ( not open(FILE, $csv_file_path) ) {
&logging( "Can't open CSV database file. Please check that you have provided the correct path to your CSV database file in config file." );
&produce_error( 5 );
die;
}
if ( $file_lock ) { flock(FILE, 1); }
@file = ();
while ( $line = ) {
chomp($line);
push(@file, $line);
}
close(FILE);
@fields = split( /$delimiter/, $file[0] );
shift( @file );
$total = @file;
}
# -------------------------------------------------------------------------
# read data from cgi form to array
sub read_cgi {
my ( $i, $field, $name, $sortby, $check );
# querying admin password
if ( param('admin') eq $admin_pass ) { $admin = 1; }
elsif ( param('admin') ne "" ) {
&produce_error( 11, param('admin') );
&logging("!!!Bad administrator logging - possible brute force attack!!!");
die;
}
# querying value in all fields - wild card search
if ( param('search') ne "" ) { &find_data2( param('search') ); }
# querying value in specific field
foreach $field ( @fields ) {
if ( param($field) ne "" or param($field) != 0 ) {
foreach $name ( @private ) {
if ( $field eq $name and $admin != 1 ) {
&produce_error( 9, param($field) );
&logging("script was called by private field - possible security violation");
die;
}
}
$check = param($field);
if ( $check =~ /^>{1}\d+$/ ) { $check = substr($check, 1); &find_data1( $field, $check, 1 ); }
elsif ( $check =~ /^<{1}\d+$/ ) { $check = substr($check, 1); &find_data1( $field ,$check, 2 ); }
elsif ( $check =~ /^(=>){1}\d+$/ ) { $check = substr($check, 2); &find_data1( $field, $check, 3 ); }
elsif ( $check =~ /^(=<){1}\d+$/ ) { $check = substr($check, 2); &find_data1( $field, $check, 4 ); }
elsif ( $check =~ /^!{2}\d+$/ ) { $check = substr($check, 2); &find_data1( $field, $check, 5 ); }
elsif ( $check =~ /^(!'){1}\S+'{1}$/ ) { $check = substr($check, 2, -1); &find_data1( $field, $check, 6 ); }
elsif ( $check =~ /^!{1}\S+$/ ) { $check = substr($check, 1); &find_data1( $field, $check, 7 ); }
elsif ( $check =~ /^'{1}\S+'{1}$/ ) { $check = substr($check, 1, -1); &find_data1( $field, $check, 8 ); }
else { &find_data1( $field, $check, 9 ); }
}
}
# checking value of "new" parameter
if ( param('new') =~ /^[on]{1}$/i ) { &newold_data( param('new') ); }
elsif ( param('new') != 0 ) {
&produce_error( 9, param('new') );
&logging("script was called with bad new /old operator - possible security violation");
die;
}
# sorting by field
if ( param('sort_a') and param('sort_d') ) {
&produce_error( 9, "both sort operator used" );
&logging("script was called with bad sorting operator - possible security violation");
die;
}
elsif ( not( param('sort_a') ) and param('sort_d') ) {
$sortby = param('sort_d');
$i = 0;
foreach $field ( @fields ) {
if ( $sortby eq $field ) { $i = 1; }
}
foreach $name ( @private ) {
if ( $sortby eq $name and $admin != 1 ) { $i = 0; }
}
if ( $i == 0 ) {
&produce_error( 9, param('sort_d') );
&logging("script was called with bad sorting operator - possible security violation");
die;
}
&sort_data( $sortby, 0 );
}
elsif ( param('sort_a') and not( param('sort_d') ) ) {
$sortby = param('sort_a');
$i = 0;
foreach $field ( @fields ) {
if ( $sortby eq $field ) { $i = 1; }
}
foreach $name ( @private ) {
if ( $sortby eq $name and $admin != 1 ) { $i = 0; }
}
if ( $i == 0 ) {
&produce_error( 9, param('sort_d') );
&logging("script was called with bad sorting operator - possible security violation");
die;
}
&sort_data( $sortby, 1 );
}
# randomizing record in array
if ( param('random') == 1 ) { &randomsort_data; }
elsif ( param('random') != 0 ) {
&produce_error( 9, param('random') );
&logging("script was called with bad randomize operator - possible security violation");
die;
}
# customizing number of matches
if ( $max_matches == 0 or $max_matches > @file ) { $max_matches = @file; }
if ( param('matches') =~ /^\d+$/ or param('matches') eq "" ) {
if ( param('matches') > $max_matches ) { $matches = $max_matches; }
else { $matches = param('matches'); }
}
elsif ( param('matches') eq "random" ) {
srand;
$matches = int(rand($max_matches));
}
else {
&produce_error( 9, param('matches') );
&logging("script was called with bad matches operator - possible security violation");
die;
}
# show next page of results
unless ( param('page') =~ /^\d+$/ or param('page') eq "" ) {
&produce_error( 9, param('page') );
&logging("script was called with bad page operator - possible security violation");
die;
}
#counting first and last record which will been dispalyied
$first_rec = $matches * param('page');
$last_rec = $matches * param('page') - 1 + $matches;
if ( $last_rec >= @file or $last_rec < 0 ) { $last_rec = @file - 1; }
}
# -------------------------------------------------------------------------
# sorting data in array
sub sort_data {
my ( $i, $sortby, $order, $name, $line, @temp );
$sortby = @_[0];
$order = @_[1];
@temp = ();
@temp = @file;
@file = ();
foreach $name ( @numeric ) {
if ( $name eq $sortby ) {
for ( $sortindex=0; $sortindex<@fields; $sortindex++ ) {
if ( $fields[$sortindex] eq $sortby ) {
foreach $line ( sort sorting_numeric @temp ) {
push ( @file, $line );
}
}
}
if ( $order == 1 ) { @file = reverse ( @file ); }
return;
}
}
for ( $sortindex=0; $sortindex<@fields; $sortindex++ ) {
if ( $fields[$sortindex] eq $sortby ) {
foreach $line ( sort sorting_chars @temp ) {
push ( @file, $line );
}
}
}
if ( $order == 1 ) { @file = reverse ( @file ); }
}
# -------------------------------------------------------------------------
# sorting procedure - numeric
sub sorting_numeric {
my ( @temp1, @temp2 );
@temp1 = split( /$delimiter/, $a );
@temp2 = split( /$delimiter/, $b );
if ( $numeric_format == 1 ) {
$temp1[$sortindex] =~ s/.//isg;
$temp2[$sortindex] =~ s/.//isg;
$temp1[$sortindex] =~ s/,/./;
$temp2[$sortindex] =~ s/,/./;
}
elsif ( $numeric_format == 2 ) {
$temp1[$sortindex] =~ s/,//isg;
$temp2[$sortindex] =~ s/,//isg;
}
else {
&produce_error( 5 );
&logging("numeric_format value in config file is out of range");
die;
}
return ( $temp2[$sortindex] <=> $temp1[$sortindex] );
}
# -------------------------------------------------------------------------
# sorting procedure - chars
sub sorting_chars {
my ( @temp1, @temp2 );
@temp1 = split( /$delimiter/, $a );
@temp2 = split( /$delimiter/, $b );
if ( $temp1[$sortindex] lt $temp2[$sortindex] ) { return 1; }
elsif ( $temp1[$sortindex] gt $temp2[$sortindex] ) { return -1; }
else { return 0; }
}
# -------------------------------------------------------------------------
# random sort data in array
sub randomsort_data {
my ( $i, $temp, @temp );
@temp = ();
@temp = @file;
@file = ();
srand;
while ( @temp > 0 ) {
$i = int( rand(@temp) );
$temp = splice( @temp, $i, 1 );
push( @file, $temp );
}
}
# -------------------------------------------------------------------------
# search in array for asked data in defined fiels and delete useless record
sub find_data1 {
my ( $i, $field, $find, $line, $name, @fields1, @temp );
$field = @_[0];
$find = @_[1];
$how = @_[2];
@temp = ();
@temp = @file;
@file = ();
for ( $i=0; $i<@fields; $i++ ) {
if ( $fields[$i] eq $field ) {
foreach $line ( @temp ) {
@fields1 = split( /$delimiter/, $line );
if ( $how == 1 and ( $fields1[$i] > $find ) ) { push( @file, $line ); }
elsif ( $how == 2 and ( $fields1[$i] < $find ) ) { push( @file, $line ); }
elsif ( $how == 3 and ( $fields1[$i] >= $find ) ) { push( @file, $line ); }
elsif ( $how == 4 and ( $fields1[$i] <= $find ) ) { push( @file, $line ); }
elsif ( $how == 5 and ( $fields1[$i] != $find ) ) { push( @file, $line ); }
elsif ( $how == 6 and ( $fields1[$i] !~ /^($find){1}$/i ) ) { push( @file, $line ); }
elsif ( $how == 7 and ( $fields1[$i] !~ /$find/i ) ) { push( @file, $line ); }
elsif ( $how == 8 and ( $fields1[$i] =~ /^($find){1}$/i ) ) { push( @file, $line ); }
elsif ( $how == 9 and ( $fields1[$i] =~ /$find/i ) ) { push( @file, $line ); }
}
}
}
}
# -------------------------------------------------------------------------
# search whole array for asked data and delete useless record
sub find_data2 {
my ( $i, $j, $find, $name, $line, @temp, @fields1 );
$find = @_[0];
@temp = ();
@temp = @file;
@file = ();
foreach $line ( @temp ) {
@fields1 = split( /$delimiter/, $line );
for ( $i=0; $i<@fields; $i++ ) {
$j = 0;
if ( $admin != 1 ) {
foreach $name ( @private ) {
if ( $fields[$i] eq $name ) { $j = 1; }
}
}
if ( $j == 0 and $fields1[$i] =~ /$find/i ) {
push( @file, $line );
$i = @fields;
}
}
}
}
# -------------------------------------------------------------------------
# search for asked "new" or "old" records and delete useless ones
sub newold_data {
my ( $i, $how, $line, @fields1, @temp );
$how = lc(@_[0]);
@temp = ();
@temp = @file;
@file = ();
for ( $i=0; $i<@fields; $i++ ) {
if ( $fields[$i] eq "_index" ) {
foreach $line ( @temp ) {
@fields1 = split( /$delimiter/, $line );
if ( ($new_compare_dat * 86400 + $fields1[$i]) > time and $how eq "n" ) { push( @file, $line ); }
elsif ( ($new_compare_dat * 86400 + $fields1[$i]) < time and $how eq "o" ) { push( @file, $line ); }
}
}
}
}
# -------------------------------------------------------------------------
# logging
sub logging {
my ( @time, $i );
if ( $log ne "" ) {
if ( not open(LOG, ">>".$log_file_path) ) {
&produce_error( 7 );
die;
}
@time = localtime(time);
$time[4] = $time[4] + 1;
$time[5] = $time[5] + 1900;
for ( $i=0; $i<@time; $i++ ) {
if ( $time[$i] < 10 ) { $time[$i] = "0" . $time[$i]; }
}
if ( $file_lock ) { flock(LOG, 2); }
print LOG "$time[3]. $time[4]. $time[2]:$time[1]:$time[0] \t @_ \r\n";
close(LOG);
}
}
# -------------------------------------------------------------------------
# generate html page
sub print_template {
my ( $i, $j, $k, $html, $field, $upper, $template, $html_template_path, $footer, $temp, $temp1, $temp2, $backup, $time, $rec, $name, @html, @fields1, @time );
if ( param('template') =~ /^\d+$/ and $html_template_path[param('template')] ne "" ) { $html_template_path = $html_template_path[param('template')]; }
else { $html_template_path = $html_template_path[0]; }
if ( open(HTML,$html_template_path) ){
if ( $file_lock ) { flock(HTML, 1); }
@html=;
close(HTML);
}
else {
&logging( "Can't open html read template file. Please check that you have provided the correct path to your your html ok_page file in config file." );
&produce_error( 5 );
die;
}
$html = join( "", @html );
unless ( $html =~ /(.*)(.*)<\/template>(.*)/is ) {
&logging( "Your HTML template file does not contain template tags necessary to display records." );
&produce_error( 5 );
die;
}
$upper=$1;
$template=$2;
$footer=$3;
@time = localtime(time);
$time[4] = $time[4] + 1;
$time[5] = $time[5] + 1900;
for ( $i=0; $i<@time; $i++ ) {
if ( $time[$i] < 10 ) { $time[$i] = "0" . $time[$i]; }
}
$date = "$time[3]. $time[4]. $time[5]";
$time = "$time[2]:$time[1]:$time[0]";
unless ( $first_rec == 0 and $last_rec == @file ) {
$nextpage = param('page') + 1;
$prevpage = param('page') - 1;
$url1 = url(-query=>1);
$url1 =~ s/&/;/isg;
unless ( $url1 =~ s/;matches=\w+/;matches=$matches/isg ) { $url1 .= ";matches=$matches"; }
$url2 = $url1;
unless ( $url1 =~ s/;page=\d+/;page=$prevpage/isg ) { $url1 .= ";page=$prevpage"; }
unless ( $url2 =~ s/;page=\d+/;page=$nextpage/isg ) { $url2 .= ";page=$nextpage"; }
$url1 =~ s/;/&/isg;
$url2 =~ s/;/&/isg;
}
$temp = $first_rec + 1;
$temp1 = $last_rec + 1;
$temp2 = @file;
foreach $i ( $upper,$template,$footer ) {
$i =~ s/<<#_date>>/$date/isg;
$i =~ s/<<#_time>>/$time/isg;
$i =~ s/<<#_total>>/$total/isg;
$i =~ s/<<#_firstrec>>/$temp/isg;
$i =~ s/<<#_lastrec>>/$temp1/isg;
$i =~ s/<<#_matches>>/$temp2/isg;
if ( $first_rec > 0 ) { $i =~ s/<<#_prevpage>>/Previous Page<\/a>/isg; }
else { $i =~ s/<<#_prevpage>>//isg; }
if ( $last_rec < @file - 1 ) { $i =~ s/<<#_nextpage>>/Next Page<\/a>/isg; }
else { $i =~ s/<<#_nextpage>>//isg; }
}
print $upper."\n";
$backup = $template;
for ( $i=$first_rec; $i<=$last_rec; $i++ ) {
@fields1 = split( /$delimiter/, $file[$i] );
for ( $j=0; $j<@fields; $j++ ) {
$temp = $fields[$j];
$temp1 = $fields1[$j];
if ( $temp eq "_index" ) {
@time = localtime( $temp1 );
$time[4] = $time[4] + 1;
$time[5] = $time[5] + 1900;
for ( $k=0; $k<@time; $k++ ) {
if ( $time[$k] < 10 ) { $time[$k] = "0" . $time[$k]; }
}
$time = "$time[3]. $time[4]. $time[5]";
$date = "$time[2]:$time[1]:$time[0]";
$template =~ s/<<#_indexdate>>/$date/isg;
$template =~ s/<<#_indextime>>/$time/isg;
$template =~ s/<<#_index>>/$temp1/isg;
$rec = $i + 1;
$template =~ s/<<#_rec>>/$rec/isg;
if ( ($new_compare_dat * 86400 + $temp1) > time ) { $template =~ s/<<#_image>>//isg; }
else { $template =~ s/<<#_image>>//isg; }
}
if ( $admin == 1 ) { $template =~ s/<<$temp>>/$temp1/isg; }
else {
$temp2 = 1;
foreach $name ( @private ) {
if ( $name eq $temp ) {
$template =~ s/<<$temp>>/not available/isg;
$temp2 = 0;
}
}
if ( $temp2 == 1 ) { $template =~ s/<<$temp>>/$temp1/isg; }
}
}
print $template."\n";
$template = $backup;
}
print $footer."\n";
}
# -------------------------------------------------------------------------
# this is printing "no record found" html page
sub no_record {
my ( $html, $date, $time, $i, @html, @time );
if( open(HTML,$norecord_found_path) ){
if ( $file_lock ) { flock(HTML, 1); }
@html=;
close(HTML);
}
else {
&logging( "Can't open html ok_page file. Please check that you have provided the correct path to your your html ok_page file in config file", );
&produce_error( 5 );
die;
}
$html = join( "", @html );
@time = localtime(time);
$time[4] = $time[4] + 1;
$time[5] = $time[5] + 1900;
for ( $i=0; $i<@time; $i++ ) {
if ( $time[$i] < 10 ) { $time[$i] = "0" . $time[$i]; }
}
$date = "$time[3]. $time[4]. $time[5]";
$time = "$time[2]:$time[1]:$time[0]";
$html =~ s/<<#_date>>/$date/isg;
$html =~ s/<<#_time>>/$time/isg;
$html =~ s/<<#_total>>/$total/isg;
print $html."\n";
}
# -------------------------------------------------------------------------
# this is printing error html pages
sub produce_error {
my ( @html, @error, @parameters, $line, $message, $value );
if( open(HTML,$error_template_path) ) {
if ( $file_lock ) { flock(HTML, 1); }
@html = ;
close(HTML);
}
if( open(ERROR,$error_pack_path) ) {
if ( $file_lock ) { flock(ERROR, 1); }
@error = ;
close(ERROR);
}
@parameters = @_;
$value = $parameters[1];
$message = $error[$parameters[0]];
$message =~ s/<>/$value/isg;
foreach $line (@html) {
$line =~ s/<>/$message/isg;
print "$line";
}
}
- Zugriffe: 1290222
Mit uns haben Sie den richtigen Partner für Ihre Fluss- oder Seereise gefunden. Egal, ob Sie eine kleine oder große Kreuzfahrt planen, wir sind die Spezialisten in Sachen Schiffsreisen und können Sie rundum bestens beraten.
Der Kreuzfahrer ist eine Reiseagentur, die sich ausschließlich auf Schiffsreisen spezialisiert hat und das schon seit vielen Jahren sehr erfolgreich.
Nutzen Sie unser Know-how, denn wir kennen alle Schiffe und Routen, Tipps und Tricks und können Sie genau auf die Bedürfnisse und Anforderungen zu Ihrer geplanten Schiffsreise beraten.
Lassen Sie uns Ihre nächste Schiffsreise zusammen planen! Telefon 089 / 759 63 14 oder nutzen Sie unseren Rückruf-Service
Um auf dem Laufenden zu bleiben: nutzen Sie unseren Newsletter!