#!/usr/bin/perl print "Content-type: text/html\n\n"; use CGI::Carp qw(fatalsToBrowser carpout); use CGI qw(:standard); $DBhostname = "localhost"; $DBpassword = "1234"; $DBuser = "dialer"; use DBI; $drh = DBI->install_driver('mysql') or die("Unable to install driver"); $dbh = DBI->connect("DBI:mysql:dialer",'dialer','1234') or die("Unable to connect"); $testmode = 0; ################### #my %param = map { $_, param($_) } param(); &fetchit; ################### $myurl="http://192.168.55.105"; $mycgi = $ENV{'SCRIPT_NAME'}; if ($FORM{'fs'}) { $fs = $FORM{'fs'}; $fstate = $FORM{'fstate'}; if ($fs) { $fstate = $fs; } } $referer = $ENV{'HTTP_REFER'}; $table = $FORM{'table'}; $leadid = $FORM{'leadid'}; $phone = $FORM{'phone'}; $name = uc $FORM{'name'}; #$name =~ s/(\w+)/\u\L$1/g; ($sec,$min,$hour,$mday,$month,$year,$wday) = (localtime(time))[0,1,2,3,4,5,6]; $mydatetimestamp = sprintf("%4.4d%2.2d%2.2d%2.2d%2.2d%2.2d", $year+1900, $month+1, $mday, $hour, $min, $sec); if ($fstate eq 'errormsg') {&myerror; } elsif ($fstate eq 'lookup') {&what_dbs; &base; } elsif ($fstate eq 'edit') {&edit_record; } elsif ($fstate eq 'update') {&update_record; &base;} elsif ($fstate eq 'env') {&env; &base;} else {&base; } $dbh->disconnect; ##################################################################################### ################################################################################################ sub base { print < Lookup Util
EOT_MARKER # print "$database$table$leadid$phone$name "; print <
LeadID:
Phone:
Name:
Fill-in at least 1 box (Limit 10 per table shown)
EOT_MARKER what_dbs(); print < EOT_MARKER } ####################################################################################### sub edit_record { print < EOT_MARKER $mystring = "SELECT * FROM " . $table . " WHERE id=$leadid "; $sth = $dbh->prepare("$mystring"); $sth->execute or die("Unable to excute query"); $i=1; while (@data=$sth->fetchrow_array()) { foreach $col (@data) { if ($sth->{NAME}->[$i-1] ne "id" && $sth->{NAME}->[$i-1] ne "lastupdated" && $sth->{NAME}->[$i-1] ne "wdayl" && $sth->{NAME}->[$i-1] ne "wdayh" && $sth->{NAME}->[$i-1] ne "satl" && $sth->{NAME}->[$i-1] ne "sath" && $sth->{NAME}->[$i-1] ne "sunl" && $sth->{NAME}->[$i-1] ne "sunh" && $sth->{NAME}->[$i-1] ne "holl" && $sth->{NAME}->[$i-1] ne "holh" && $sth->{NAME}->[$i-1] ne "tzl" && $sth->{NAME}->[$i-1] ne "tzh") { print "\n"; } $i++; } } print <
" . $sth->{NAME}->[$i-1] . ":
\n
EOT_MARKER } ####################################################################################### sub update_record { print < EOT_MARKER $mystring = "UPDATE " . $table . " SET "; foreach $key (sort keys %FORM) { if ($key ne "fs" && $key ne "table" && $key ne "leadid" && $key ne "lastupdated") { $mystring = $mystring . $key . "='" . $FORM{$key} . "',"; if ($testmode) { print qq|\n|; } } } $mystring =~ s/\,$//; $mystring = $mystring . " WHERE id='" . $leadid . "'"; if ($testmode) { print "$mystring"; } $sth = $dbh->prepare("$mystring"); $sth->execute or die("Unable to excute query"); print <
$key:$FORM{$key}
Record Updated!
EOT_MARKER } #################################################################################################### sub what_dbs { my $ret = 0; #$dbh = DBI->connect("DBI:mysql:dialer",'dialer','1234') or die("Unable to connect"); my $sth = $dbh->prepare("SHOW TABLES"); $sth->execute or print "query: what_dbs failed"; while(@table = $sth->fetchrow_array) { if ($table[0] ne 'cdr' && $table[0] ne 'CDR' &&$table[0] ne 'dnc' && $table[0] ne 'DNC') { search_table($table[0]); } } $sth->finish; #$dbh->disconnect; return $ret; } ############################### sub search_table { local($thetable) = @_; print " Table: $thetable "; if ($leadid ne "" || $phone ne "" || $name ne "") { $mystring = "SELECT * FROM " . $thetable . " WHERE 1 "; if ($leadid ne "") { $mystring = $mystring . " AND id='" . $leadid . "'"; } if ($phone ne "") { $mystring = $mystring . " AND phone LIKE '%" . $phone . "%'"; } if ($name ne "") { $mystring = $mystring . " AND name LIKE '%$name%'"; } } else { $mystring = "SELECT * FROM " . $thetable . " WHERE phone = '9898989898' "; } $mystring = $mystring . " LIMIT 10"; $sth = $dbh->prepare("$mystring"); $sth->execute or die("Unable to excute query"); print "
"; print < EOT print "
"; $hit_count=0; print ""; print ""; while(@record = $sth->fetchrow_array) { $hit_count = $hit_count + 1; print ""; print ""; print ""; print ""; print ""; print ""; } print "
LeadIDPhoneName
$record[0]$record[1]$record[3]"; print ""; print "Edit
"; $sth->finish; print ""; #TESTAREA##################### print ""; } ##################################### sub env { print "
\n"; foreach $key (sort keys %ENV) { print qq|\n|; } print "
$key:$ENV{$key}
\n"; } ############################################################################# sub passback { print "\n"; foreach $key (sort keys %FORM) { print qq|\n|; } print "
$key:$FORM{$key}
\n"; } ########################## sub myerror { print ""; print "

Not implemented yet...\n

"; print ""; } ########################## sub fetchit { if ($ENV{'REQUEST_METHOD'} eq 'GET') { @pairs = split(/&/, $ENV{'QUERY_STRING'}); } elsif ($ENV{'REQUEST_METHOD'} eq 'POST') { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); } else { #&output("Error 112","Bad or Unknown Request Method"); print "Bad or Unknown Request Method"; } foreach $pair (@pairs) { local($name, $value) = split(/=/, $pair); $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s///g; $INPUT{$name} = $value; if (($name =~ /^r_/) && (!$value)) { push(@missing_fields,$name) } if (($name =~ /email/) && ($value) && (($value =~ /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/) || ($value !~ /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/))) { push(@bad_emails,$name) } $FORM{$name} = $value; ### BEGIN DEBUG SECTION # print "Content-type: text/plain\n\n"; # print "In debug mode\n"; # print "$value = $name\n"; # exit; ### END DEBUG SECTION } } ########################## sub mail_user { open (MAIL, "|$mailprog -t") || print "Can't start mail program"; print MAIL "To: $email\n"; print MAIL "From: newuser\@dynx.net (DynX Services)\n"; print MAIL "Subject: New User Information\n\n"; print MAIL "-" x 75 . "\n\n"; print MAIL "Your request for a DynX Account was Successful. \n"; print MAIL "As soon as your request is processed, you will be \n"; print MAIL "notified by email that you can login. \n\n"; print MAIL "Username: $username \n"; print MAIL "Password: $password \n\n"; print MAIL "You should file this away somewhere safe! \n"; print MAIL "\n\n"; close (MAIL); } ########################## sub mail_dynx { open (MAIL, "|$mailprog -t") || print "Can't start mail program"; print MAIL "To: pchammer\@dynx.net\n"; print MAIL "From: newuser\@dynx.net (DynX Services)\n"; print MAIL "Subject: New User Information\n\n"; print MAIL "-" x 75 . "\n\n"; print MAIL "The following user has signed up for DynX Services. \n"; print MAIL "Username: $username \n"; print MAIL " Email: $email \n\n"; print MAIL "\n\n"; close (MAIL); } ########################## sub getdate { my $sth = $dbh->prepare("SELECT LEFT(NOW(),8)"); $sth->execute; ( $now ) = $sth->fetchrow(); $now =~ s/://g; $now =~ s/-//g; $now =~ s/\s//g; return $now; } ########################## sub getdatetime { my $sth = $dbh->prepare("SELECT NOW()"); $sth->execute; ( $now ) = $sth->fetchrow(); $now =~ s/://g; $now =~ s/-//g; $now =~ s/\s//g; return $now; } ######################### sub error { local($errornum, $error) = @_; print "

The Following Errors Were Encountered!"; print "
ERROR CODE: $errornum"; print "
ERROR TYPE: $error


"; print "

Press your browser's BACK button to Go back to the form and fix them. Thank you."; print "

$footer"; exit; } #*************************