#!/usr/bin/perl
#
# fixedredir.cgi

	use strict;
	use CGI;
	use Date::Format;
	use DBI;

    use File::Basename;
    use lib dirname($0);

my $path =  dirname($0);


my $cgi;

my %url_codes;

$url_codes{"blubeez_qpzmpostcodes"} = "http://www.blubeez.com.au/?referrer_code=qpzm_postcodes";


my $cgi = new CGI;
main_run($cgi, \%url_codes);

sub main_run	{

	my $cgi = shift;
	my $url_codes = shift;

	my %url_codes_hash = %$url_codes; 
	
	my $clickcode = $cgi->param("code");

	my $clickthru = $url_codes_hash{$clickcode};

	my $user_ip = $ENV{'REMOTE_ADDR'};
	my $user_agent = $ENV{'HTTP_USER_AGENT'};
	my $user_referrer = $ENV{'HTTP_REFERER'};

	if ($clickthru)	{

		my $sql = "insert into qpzm_clicktracker (user_ip, user_agent, user_referrer, clickthru, clickcode) values ('$user_ip', '$user_agent', '$user_referrer', '$clickthru', '$clickcode')";
		my @results = run_sql("$sql");

		print $cgi->redirect(
			-location => $clickthru,
		);
		#print "$user_ip, $user_agent, $url, $url_code\n";
	}

}

sub log_redirect	{

	my $line = shift;

	open (MYFILE, ">>$path/data.txt");
	print MYFILE "Bob\n";
	close (MYFILE); 

}

sub run_sql     {

        my $sql_command = $_[0];
        my $sql_return_struct = $_[1];
        my (@matrix) = ();
        my $sql_return_struct ="";

        #$page .= "$sql_command <br /><br />\n";
        #print "$sql_command <br /><br />\n";
    	#my $dsn = 'DBI:mysql:qpzm:localhost';
    	#my $db_user_name = 'qpzm';
    	#my $db_password = 'qpzm';

        my $dsn = 'DBI:mysql:qpzm_postcodes:127.0.0.1';
        my $db_user_name = 'qpzm_postcodes';
        my $db_password = 'qpzm';
        my $dbh = DBI->connect($dsn, $db_user_name, $db_password);

        if (!defined $dbh) {
                print "Database Error: Exiting\n";
                exit;
        }

        my $sql_result = $dbh->prepare($sql_command)
                or print "Unable to prepare query";

        $sql_result->execute;
        #print "-- $sql_result->{NUM_FIELDS}<br />\n";

        if ($sql_command =~ /^select/i) {
                while (my @ary = $sql_result->fetchrow_array()) {
                        push(@matrix, [@ary]);  # [@ary] is a reference
                }
        }
        $sql_result->finish;
        $dbh->disconnect;

        if ($sql_command =~ /^select/i) {
                return @matrix;
        }
}

