<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">#!/usr/bin/perl
#
#

use DBI;
use CGI;
use err;


$mailprog = '/usr/sbin/sendmail';
$absender = 'info@prorata.de';
$subject = 'Ihre Zugangsdaten';


open (FILE, "&lt;panel2.conf") or die "AAAArrrrrgghhh";
while ($line = &lt;FILE&gt;) {
  ($key,$val) = ($line =~/^(\S*)\s*=\s*(\S*)/);
    if ($key ne "") { $conf{$key}=$val }
}
close FILE;

my $query = new CGI;

my $DB_DSN      = "DBI:$conf{database}:$conf{dataname}:$conf{datahost}";
my $DB_USER     = "$conf{datauser}";
my $DB_PASSWD   = "$conf{datapass}";

my $dbh = DBI-&gt;connect($DB_DSN, $DB_USER, 
   $DB_PASSWD) or err::error_seite{"Cannot connect to DB"};


my $pin = $query-&gt;param(pin);
my $pass = $query-&gt;param(pass);
my $vname = $query-&gt;param(vname);
my $nname = $query-&gt;param(nname);
my $tel = $query-&gt;param(tel);
my %val = $query-&gt;Vars;


my $but = $query-&gt;param(but);	#-----------Einloggen
my $but1 = $query-&gt;param(but1);	#-----------Zurück
my $but2 = $query-&gt;param(but2);	#-----------Ende
my $but3 = $query-&gt;param(but3);	#-----------Abschicken

#-------------------------------------------
if ($but2 eq "Ende")  {	
    print $query-&gt;redirect("$conf{htmlsource}/prorataweb.htm");   #"$ENV{HTTP_REFERER}"
	$dbh-&gt;disconnect();
	exit;
}
#-------------------------------------------
if ($but1 eq "Zurück")  {	
    print $query-&gt;redirect("$conf{htmlsource}/webhaup1.htm");   #"$ENV{HTTP_REFERER}"
	$dbh-&gt;disconnect();
	exit;
}
#------------LOGIN FALSE------------------------------------------------
if ($but eq "Einloggen"){$pass=crypt($pass,"xy")}
	#else { $dbh-&gt;disconnect(); exit(0); }

if ($but3 eq "") {
 if ($but eq "Einloggen" || $but1 eq "Zurück") {
  $err=0;
  $err=!($dbpass=$dbh-&gt;selectrow_array("select pass from benutzer where pin=$pin"));
  $dbpass=crypt($dbpass,"xy");
  if ($dbpass ne $pass) {$err=1}

  if ($err==1) {
	print  $query-&gt;header,
	$query-&gt;start_html(-title=&gt;"Prorata Login",
  		     -text=&gt;'#000000', -bgcolor=&gt;'#D8D5D8', -link=&gt;'#0084FF',
		     -vlink=&gt;'#0084FF', -alink=&gt;'#0084FF', 
		     -background=&gt;'' ),

    "&lt;center&gt;&lt;img src='$conf{picsource}/$conf{proratalogo}'&gt;&lt;hr&gt;&lt;br&gt;\n",
    "&lt;font size=6 color='#0482BD' face='$conf{stdfont}'&gt;Überprüfen Sie bitte Ihre PIN-Nummer und Ihr Passwort !&lt;/font&gt;&lt;hr&gt;\n",  
   
	$query-&gt;startform,"&lt;center&gt;&lt;br&gt;&lt;table&gt;",
	$query-&gt;submit('but1','Zurück'),"&lt;/center&gt;&lt;/table&gt;\n",
	$query-&gt;endform,
	$query-&gt;end_html;
	$dbh-&gt;disconnect;    
	exit 0;
  } 
  else {
  #---------------------------------------------------------------------------
  #Passwort und PIN sind in Ordnung!

		$sql="select * from benutzer where pin=$pin";
		$sth=$dbh-&gt;prepare($sql) or {err::error_seite("Tabelle Benutzer konnte nicht geöffnet werden!",$ende)};
		$sth-&gt;execute;		
#------------------------------------------------------------------------------------
print  $query-&gt;header,
	   $query-&gt;start_html(-title=&gt;'Teilnehmer Angaben',
		     -text=&gt;'#000000', -bgcolor=&gt;'#D8D5D8', -link=&gt;'#0084FF',
		     -vlink=&gt;'#0084FF', -alink=&gt;'#0084FF', 
		     -background=&gt;'' ),

	"&lt;center&gt;&lt;img src='$conf{picsource}/$conf{proratalogo}'&gt;",
	"&lt;hr&gt;&lt;b&gt;&lt;br&gt;&lt;br&gt;&lt;font face='$conf{stdfont}'&gt;",
  #-------------------------------------------------------------------------------------
	"&lt;P&gt;&lt;CENTER&gt;&lt;b&gt;",
  #-------------------------------------------------------------------------------------
  "&lt;P&gt;&lt;CENTER&gt;&lt;TABLE BORDER=1  width='100%'&gt;&lt;tr&gt;&lt;b&gt;&lt;center&gt;",
  "&lt;TD&gt;&lt;b&gt;&lt;CENTER&gt;&lt;font color='#0080C0'&gt;Anrede&lt;/font&gt;&lt;/CENTER&gt;&lt;/TD&gt;&lt;TD&gt;&lt;CENTER&gt;&lt;b&gt;&lt;font color='#0080C0'&gt;Vorname&lt;/font&gt;",
  "&lt;/CENTER&gt;&lt;/TD&gt;&lt;TD&gt;&lt;CENTER&gt;&lt;b&gt;&lt;font color='#0080C0'&gt;Name&lt;/font&gt;&lt;/CENTER&gt;&lt;/TD&gt;&lt;TD&gt;&lt;CENTER&gt;&lt;b&gt;&lt;font color='#0080C0'&gt;Land&lt;/font&gt;&lt;/CENTER&gt;",
  "&lt;/TD&gt;&lt;TD&gt;&lt;CENTER&gt;&lt;b&gt;&lt;font color='#0080C0'&gt;PLZ&lt;/font&gt;&lt;/CENTER&gt;&lt;/TD&gt;&lt;TD&gt;&lt;CENTER&gt;&lt;b&gt;&lt;font color='#0080C0'&gt;Stadt&lt;/font&gt;&lt;/CENTER&gt;&lt;/TD&gt;",
  "&lt;TD&gt;&lt;CENTER&gt;&lt;b&gt;&lt;font color='#0080C0'&gt;Straße&lt;/font&gt;&lt;/CENTER&gt;&lt;/TD&gt;&lt;TD&gt;&lt;CENTER&gt;&lt;b&gt;&lt;font color='#0080C0'&gt;E-Mail&lt;/font&gt;&lt;/CENTER&gt;&lt;/TD&gt;",
  "&lt;TD&gt;&lt;CENTER&gt;&lt;b&gt;&lt;font color='#0080C0'&gt;Provider&lt;/font&gt;&lt;/CENTER&gt;&lt;/TD&gt;&lt;TD&gt;&lt;CENTER&gt;&lt;b&gt;&lt;font color='#0080C0'&gt;Telefon&lt;/font&gt;&lt;/CENTER&gt;&lt;/TD&gt;&lt;/tr&gt;";

$sth = $dbh-&gt;prepare("select ANREDE,VNAME,NNAME,LAND,PLZ,STADT,STRASSE,EMAIL,provider,TEL from benutzer where pin=$pin ");
$sth-&gt;execute;

@arr = $sth-&gt;fetchrow_array;

	 my @AN=("","Herr","Frau");
	 $val{an}=$arr[0];
	 my $anrede=$AN[$val{an}];
	 $arr[0] =$anrede;

      @LA=("","Deutschland","&amp;Ouml;sterreich","Schweiz");
	  $val{la}=$arr[3];
	  my $land=$LA[$val{la}];
      $arr[3]=$land;

	  @PR=("","T-Online","AOL","Arcor","Otello","Freenet","Talknet","1 &amp; 1","Netcologne","OWL-Online","Surf Callino","Viag Interkom","Compuserve","Okaynet","Debitel","Nikoma","UU-Net","Germanynet","Uni-Server","FH-Server","Andere");
	  $val{pr}=$arr[8];
	  my $provider=$PR[$val{pr}];
	  $arr[8]=$provider;

print "&lt;TR&gt;&lt;TD&gt;" . join( "&lt;/TD&gt;&lt;TD&gt;" , @arr) . "&lt;/TD&gt;&lt;/TR&gt;";
print "&lt;/TABLE&gt;";

#------------------------------------------------------------------------------------------------------------
#Persönliche Angaben
  print "&lt;P&gt;&lt;CENTER&gt;&lt;table border='1' width='100%'&gt;",
 " &lt;tr&gt;",
    "&lt;td width='14%' rowspan='2'&gt;&lt;b&gt;&lt;CENTER&gt;&lt;font color='#0080C0'&gt;Geb.Datum&lt;/font&gt;&lt;/CENTER&gt;&lt;/b&gt;&lt;/td&gt;",
    "&lt;td width='14%' rowspan='2'&gt;&lt;b&gt;&lt;CENTER&gt;&lt;font color='#0080C0'&gt;Ausbildung&lt;/font&gt;&lt;/CENTER&gt;&lt;/b&gt;&lt;/td&gt;",
    "&lt;td width='14%' rowspan='2'&gt;&lt;b&gt;&lt;CENTER&gt;&lt;font color='#0080C0'&gt;Fam.Stand&lt;/font&gt;&lt;/CENTER&gt;&lt;/b&gt;&lt;/td&gt;",
    "&lt;td width='14%' rowspan='2'&gt;&lt;b&gt;&lt;CENTER&gt;&lt;font color='#0080C0'&gt;Tätigkeit&lt;/font&gt;&lt;/CENTER&gt;&lt;/b&gt;&lt;/td&gt;",
    "&lt;td width='14%' rowspan='2'&gt;&lt;b&gt;&lt;CENTER&gt;&lt;font color='#0080C0'&gt;Entlohnungsart&lt;/font&gt;&lt;/CENTER&gt;&lt;/b&gt;&lt;/td&gt;",
    "&lt;td width='15%' colspan='5'&gt;",
     " &lt;p align='center'&gt;&lt;b&gt;&lt;font color='#0080C0'&gt;Personen im Haushalt&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;",
  "&lt;/tr&gt;",
  "&lt;tr&gt;",
	"&lt;td&gt;&lt;b&gt;&lt;font color='#0080C0'&gt;bis 3&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;",
    "&lt;td&gt;&lt;b&gt;&lt;font color='#0080C0'&gt;4 bis 12&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;",
    "&lt;td&gt;&lt;b&gt;&lt;font color='#0080C0'&gt;13 bis 22&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;",
    "&lt;td&gt;&lt;b&gt;&lt;font color='#0080C0'&gt;23 bis 54&lt;/font&gt;&lt;/b&gt;&lt;/td&gt;",
    "&lt;td&gt;&lt;b&gt;&lt;font color='#0080C0'&gt;ab 55&lt;/font&gt;&lt;/td&gt;",
    "&lt;/tr&gt;&lt;/center&gt;";

$sth = $dbh-&gt;prepare("select gdat,bildung,famstand,arbeit,lohnart,pers3,pers12,pers22,pers54,pers55 from benutzer where pin=$pin ");
$sth-&gt;execute;

@arr = $sth-&gt;fetchrow_array;

my @BI =("Keine Angaben","Hauptschule","Realschule","Gymnasium","Fachhochschule","Hochschule","Magister","Promotion"); 
my @FA=("Keine Angaben","Verheiratet","Ledig");
my @AR=("Keine Angaben","Vollzeitbesch&amp;auml;ftigt","Teilzeitbesch&amp;auml;ftigt","Rentner/in","Student/in","Sch&amp;uuml;ler/in","zur Zeit erwerbslos");

$arr[1]=$BI[$arr[1]];
$arr[2]=$FA[$arr[2]];
$arr[3]=$AR[$arr[3]];

print "&lt;TR&gt;&lt;TD&gt;&lt;center&gt;" . join( "&lt;/center&gt;&lt;/TD&gt;&lt;TD&gt;&lt;center&gt;" , @arr) . "&lt;/center&gt;&lt;/TD&gt;&lt;/TR&gt;";
print "&lt;/TABLE&gt;&lt;/CENTER&gt;&lt;br&gt;&lt;br&gt;";

#--------------------------------------------------------------------------------------------
#Ausgewählte Produktkategorien
my @liste6=();				
foreach  $key (keys %val) {


		$sql="select * from benutzer where pin=$pin";
		$sth=$dbh-&gt;prepare($sql) or {err::error_seite("Tabelle Benutzer konnte nicht geöffnet werden!",$ende)};
		$sth-&gt;execute;

		$liste=$sth-&gt;fetchrow_hashref;

        while(($key,$item) = each %$liste) {

			if ((($num)=$key=~/^PK(\d+)$/i) &amp;&amp; ($item == "1")) {
				$teil=$dbh-&gt;selectrow_array("select krit from krit where nr=$num");
				if ($num &lt; 25) {unshift (@liste4,$teil)}
						   else {unshift (@liste5,$teil)}
						  
            }
#------------------------------------------------------------------------------------------

				if  ( (($num)=$key=~/^vh(\d+)$/i) &amp;&amp; ($item == "1") ) {
				    $vhteil=$dbh-&gt;selectrow_array("select  vh from vhaus where vhnr=$num");
					unshift (@liste6,$vhteil);
				}

#-------------------------------------------------------------------------------------------
        }


	if (@liste5[0] eq "" &amp;&amp; @liste4[0] eq "") {
		print "&lt;br&gt;&lt;br&gt;Sie haben keine Kategorien und Hobbies ausgesucht !";
	}

	if (@liste4[0] ne "") {
 		print "&lt;b&gt;&lt;font color='#FF8000'&gt;Bevorzugte Produktkategorien&lt;/b&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;",
		"&lt;Table border=1&gt;&lt;TR&gt;&lt;TD&gt;";
		while  (@liste4) {     # 4 Kriterien in eine Reihe, dann nächste Reihe
				@liste3=();
			for ($x=0;$x&lt;4 ; $x++) {unshift (@liste3, shift @liste4)}
		    print join("&lt;/TD&gt;&lt;TD&gt;", @liste3), "&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;";
		}
	    print "&lt;/TD&gt;&lt;/TR&gt;&lt;/table&gt;\n";
	}
	
 	if (@liste5[0] ne "") {
	 	print "&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;font color='#FF8000'&gt;Hobbies&lt;/b&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;",
		"&lt;Table border=1&gt;&lt;TR&gt;&lt;TD&gt;";
		while  (@liste5) {     # 4 Kriterien in eine Reihe, dann nächste Reihe
				@liste3=();
			for ($x=0;$x&lt;4 ; $x++) {unshift (@liste3, shift @liste5)}
			print join("&lt;/TD&gt;&lt;TD&gt;", @liste3), "&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;";
		}
		print "&lt;/TD&gt;&lt;/TR&gt;&lt;/table&gt;\n";
	}


#---------------------------------------------------------------------------------------------
 if ( $liste6[0] ne "") {

 	 	print "&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;font color='#FF8000'&gt;Versandhäuser, deren Kunde Sie sind&lt;/b&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;",
		"&lt;Table border=1&gt;&lt;TR&gt;&lt;TD&gt;";
		while  (@liste6) {     # 4 Kriterien in eine Reihe, dann nächste Reihe
				@liste3=();
			for ($x=0;$x&lt;4 ; $x++) {unshift (@liste3, shift @liste6)}
			print join("&lt;/TD&gt;&lt;TD&gt;", @liste3), "&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;";
		}
		print "&lt;/TD&gt;&lt;/TR&gt;&lt;/table&gt;\n";
 }


#-----------------------------------------------------------------------------------------------
print      $query-&gt;startform,"&lt;CENTER&gt;&lt;p&gt;\n",

	   $query-&gt;submit('but2','Ende'),"&lt;/CENTER&gt;&lt;P&gt;\n",
       $query-&gt;endform,
	   $query-&gt;end_html, "\n";
	   $dbh-&gt;disconnect();
	   exit 0;

}
}
}
}
#--------------------------------------------------------------------------------------------------------------------------
#PIN oder PASSWORT vergessen

if ($but3 eq "Anfordern") {  # print "content-type: text/html\n\nHalloooo\n";

	#----------------------------------------------------------------------------------------------
	#Telefonnummerangabe überprüfen
    
	$val{tel}=~s/\D//g;   #Löscht alle nicht digits aus der Telefonnummer
	if ($val{tel} !~/0\d{5,}/)   #Tel.Nr muß mit 0 anfangen und mind. 6 zeichen lang sein
		{
	 	print  $query-&gt;header,
		       $query-&gt;start_html(-title=&gt;'Falsche Telefonnummer?',
		         -text=&gt;'#000000', -bgcolor=&gt;'#D8D5D8', -link=&gt;'#0084FF',
		         -vlink=&gt;'#0084FF', -alink=&gt;'#0084FF', 
		         -background=&gt;'' ),
                 "&lt;center&gt;&lt;img src='$conf{picsource}/$conf{proratalogo}'&gt;",
	             "&lt;hr&gt;&lt;b&gt;&lt;br&gt;&lt;br&gt;&lt;font face='$conf{stdfont}'&gt;",
		        $query-&gt;startform,"&lt;CENTER&gt;&lt;p&gt;\n",
				"Überprüfen Sie bitte, ob Sie Ihre Telefonnummer korrekt mit Vorwahl eingegeben haben.&lt;br&gt;&lt;hr&gt;",
				$query-&gt;submit('but1','Zurück'),"&lt;/CENTER&gt;&lt;P&gt;\n",
				$query-&gt;endform,
				$query-&gt;end_html, "\n";
				$dbh-&gt;disconnect();
				exit 1;
	
		}
	else{

#------------------------------------------------------------------------------------------------

	$sth = $dbh-&gt;prepare("select PIN, PASS, EMAIL from benutzer where vname='$vname' and nname='$nname' and tel=$val{tel} ");
	$sth-&gt;execute;
	@arr = $sth-&gt;fetchrow_array;
	$EMAIL=@arr[2]; $PIN=@arr[0]; $PASS=@arr[1];
#----------------------------------------------------------------------------------------

	print  $query-&gt;header,
		   $query-&gt;start_html(-title=&gt;'Teilnehmer Anfrage',
		       -text=&gt;'#000000', -bgcolor=&gt;'#D8D5D8', -link=&gt;'#0084FF',
		       -vlink=&gt;'#0084FF', -alink=&gt;'#0084FF', 
		       -background=&gt;'' ),

	 "&lt;center&gt;&lt;img src='$conf{picsource}/$conf{proratalogo}'&gt;",
	 "&lt;hr&gt;&lt;b&gt;&lt;br&gt;&lt;br&gt;&lt;font face='$conf{stdfont}'&gt;";

if ( $EMAIL ne "" and $PIN ne "") {

	print "Ihre PIN-Nummer und Ihr Passwort wurden Ihnen per E-Mail zugesandt&lt;br&gt;&lt;hr&gt;";
	print  $query-&gt;startform,"&lt;CENTER&gt;&lt;p&gt;\n",
	   $query-&gt;submit('but2','Ende'),"&lt;/CENTER&gt;&lt;P&gt;\n",
       $query-&gt;endform,
	   $query-&gt;end_html, "\n";
	   $dbh-&gt;disconnect();
		#E-Mail-generieren
		&amp;get_date;
		&amp;send_mail;
	   exit 0;
	}
else { print "Ihre Angaben : '$vname $nname $tel' wurden in der Datenbank nicht gefunden&lt;br&gt;&lt;hr&gt;";
	 print  $query-&gt;startform,"&lt;CENTER&gt;&lt;p&gt;\n",
			$query-&gt;submit('but1','Zurück'),"&lt;/CENTER&gt;&lt;P&gt;\n",
			$query-&gt;endform,
			$query-&gt;end_html, "\n";
			$dbh-&gt;disconnect();
			exit 0;
	 } 

#-----------------------------------------------------------------------------------------------
print  $query-&gt;startform,"&lt;CENTER&gt;&lt;p&gt;\n",
	   $query-&gt;submit('but2','Ende'),"&lt;/CENTER&gt;&lt;P&gt;\n",
       $query-&gt;endform,
	   $query-&gt;end_html, "\n";
	   $dbh-&gt;disconnect();
	   exit 0;

}
}
#-------------------------------------------------------------------------------------------------

sub get_date {

    # Define arrays for the day of the week and month of the year.           #
    @days   = ('Sonntag','Montag','Dienstag','Mittwoch',
               'Donnerstag','Freitag','Samstag');
    @months = ('Januar','Februar','März','April','Mai','Juni','Juli',
         'August','September','Oktober','November','Dezember');

    ($sec,$min,$hour,$mday,$mon,$year,$wday) = (localtime(time))[0,1,2,3,4,5,6];
    $time = sprintf("%02d:%02d:%02d",$hour,$min,$sec);
    $year += 1900;

    # Format the date.                                                       #
    $date = "$days[$wday] den $mday $months[$mon] $year um $time";

}

	sub send_mail {
    # Localize variables used in this subroutine.                            #
    local($print_config,$key,$sort_order,$sorted_field,$env_report);

    # Open The Mail Program
    open(MAIL,"|$mailprog -t");

    print MAIL "To: $EMAIL\n";
    print MAIL "From: $absender\n";

    # Print Message Subject
    print MAIL "Subject: $subject\n\n";
    print MAIL "Automatisch erstellt am $date\n";
    print MAIL "-" x 75 . "\n";
	print MAIL "Sie haben uns gebeten, Ihnen Ihre Zugangsdaten\nfür die Teilnahme an unseren Umfragen\nzuzusenden.\n\n";
	print MAIL "Ihre PIN ist : $PIN\n";
	print MAIL "Ihr Passwort ist : $PASS\n\n";
    print MAIL "Mit freundlichem Gruß\n\nIhr prorata.web - TEAM!";
    close (MAIL);
}


</pre></body></html>