1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Need a Perl Script Converted to PHP.

Discussion in 'Hire a Freelancer' started by kayzne, Aug 26, 2013.

  1. kayzne

    kayzne Power Member

    Joined:
    Dec 26, 2007
    Messages:
    703
    Likes Received:
    1,951
    Location:
    localhost
    Hey,

    I need a perl script converted to php with an accompanying MySQL db. Please Bid.

    Here's the code:

    Main CGI:

    Code:
    #!/usr/bin/perl
    use CGI::Carp 'fatalsToBrowser';
    use CGI qw (:standard);
    
    require "variables.**";
    
    open(ACT, "$file");
    flock(ACT, 2);
    @act = <ACT>;
    flock(ACT, 8);
    close(ACT);
    $ac = $ENV{'QUERY_STRING'};
    $referer = $ENV{'HTTP_REFERER'};
    $forward = "";
    foreach $line (@act) {
    	chop($line);
    	@info = split(/\|/, $line);
    	if($info[0] eq $ac) {
    		&site;		
    	}
    
    }
    if($forward eq "") {
    $forward = "$default";
    print "Location: $forward\n\n";
    } else { &site; }
    
    sub site {
    open(HEAD,"index.html");
    flock(HEAD, 2);
    @head = <HEAD>;
    flock(HEAD, 8);
    close(HEAD);
    print "Content-type:text/html\n\n";
    foreach $temp (@head) {
      $temp =~ s/\<username>/$info[0]/gi;
      $temp =~ s/\<email>/$info[2]/gi;
      $temp =~ s/\<name>/$info[3]/gi;
      $temp =~ s/\<siteheadline>/$info[4]/gi;
      $temp =~ s/\<url>/$info[5]/gi;
      $temp =~ s/\<description>/$info[6]/gi;
      $temp =~ s/\<id>/$info[7]/gi;
      print $temp; }
    exit;
    }

    MEMBER CGI


    Code:
    #!/usr/bin/perl
    $|=1;
    
    use CGI::Carp 'fatalsToBrowser';
    use CGI qw (:standard);
    
    require "variables.**";
    $action = param(action);
    $user = param(user);
    $pass = param(pass);
    
    if($action eq "menu") { &menu; }
    elsif($action eq "addmem") { &addmem; }
    elsif($action eq "send2") { &send2; }
    elsif($action eq "editmember") { &editmember; }
    elsif($action eq "editmember2") { &editmember2; }
    elsif($action eq "deletemember") { &deletemember; }
    else { &main; }
    
    sub main {
    print "Content-type:text/html\n\n";
    print qq|
    <html>
    <head>
    <title>$program</title>
    </head>
    <body>
    <table border="0" width="100%" cellspacing="0" cellpadding="3">
      <tr>
        <td width="100%" bgcolor="#000080"><font face="Arial" color="#FFFFFF"><b>$program</b></font></td>
      </tr>
      <tr>
        <td width="100%">
          <blockquote>
            <p><font face="Arial" size="2">To login to your account please
            fill in your username and password in the boxes below. To create a new account, scroll down and choose your own user name and password</font></p>
            <div align="center">
              <center>
              <form action="$ENV{'SCRIPT_NAME'}" method="POST">
              <table border="0" cellspacing="0" cellpadding="2" width="248">
                <tr>
                  <td width="88"><b><font face="Arial" size="2">Username:</font></b></td>
                  <td width="148"><input type="text" name="user" size="20"></td>
                </tr>
                <tr>
                  <td width="88"><b><font face="Arial" size="2">Password:</font></b></td>
                  <td width="148"><input type="password" name="pass" size="20"></td>
                </tr>
                <tr>
                  <td width="236" colspan="2">
                    <p align="center"><input type="submit" value="Login"></td>
                </tr>
              </table> <input type="hidden" name="action" value="menu">
              </form>
    <BR><BR><font face="Arial" size="2">To add your account, please
            fill in the form below. You will need to be a paypal member
    and you will need a home page url. If you are not a paypal
    member, please sign up here <a href="http://www.paypal.com
    " target="new">Click Here</a></font>
    <form action="$ENV{'SCRIPT_NAME'}" method="POST">
    <table border="0" cellspacing="0" cellpadding="2" width="248">
                <tr>
                  <td width="88"><b><font face="Arial" size="2">Username:</font></b></td>
                  <td width="148"><input type="text" name="username" size="20"></td>
                </tr>
                <tr>
                  <td width="88"><b><font face="Arial" size="2">Password:</font></b></td>
                  <td width="148"><input type="password" name="password" size="20"></td>
                </tr>
                   <tr>
                  <td width="88"><b><font face="Arial" size="2">Name:</font></b></td>
                  <td width="148"><input type="text" name="name" size="20"></td>
                </tr>
                  <tr>
                  <td width="88"><b><font face="Arial" size="2">Email:</font></b></td>
                  <td width="148"><input type="text" name="email" size="20"></td>
                </tr>
                <tr>
                  <td width="88"><b><font face="Arial" size="2">WebSite Title:</font></b></td>
                  <td width="148"><input type="text" name="siteheadline" size="20"></td>
                </tr>
                 <tr>
                  <td width="88"><b><font face="Arial" size="2">Website URL:</font></b></td>
                  <td width="148"><input type="text" name="url" size="20"></td>
                </tr>
                <tr>
                  <td width="88"><b><font face="Arial" size="2">Description:</font></b></td>
                  <td width="148"><input type="text" name="description" size="20"></td>
                </tr>
                 <tr>
                  <td width="88"><b><font face="Arial" size="2">PayPal Email:</font></b></td>
                  <td width="148"><input type="text" name="id" size="20"></td>
                </tr>
                <tr>
                  <td width="236" colspan="2">
                    <p align="center"><input type="submit" value="Add"></td>
                </tr>
              </table>
              <input type="hidden" name="action" value="addmem">
              </form>
              </center>
            </div>
          </blockquote>
        </td>
      </tr>
      <tr>
        <td width="100%" bgcolor="#000080">
          <p align="right"><font face="Arial" size="2" color="#FFFFFF">©2001-2003 CGItoolbox.com </font></td>
      </tr>
    </table>
    <center><FONT FACE=verdana SIZE=1><B>$program written<BR>
    by <a href="http://www.hostswan.com/cgi">CGI Toolbox</a></B></FONT></center>
    </body>
    
    </html>
    |;
    exit;
    }
    
    sub addmem {
    @data = param;
    foreach $data (@data) {${$data} = param($data);}
    unless($username && $password && $email && $name && $siteheadline && $url && $description && $id){
    		&plainerror('A Form Field was left blank, please click your browsers back button and try again!'); }
    unless($url =~ m/http:\/\//){
    &plainerror('Site URL must be in this format "http://www.yoursite.com"'); }
    
    open(FILE, "$file");
    flock(FILE, 2);
    @file = <FILE>;
    flock(FILE, 8);
    close(FILE);
    foreach $line (@file) {
    	chomp($line);
    	@temp = split(/\|/,$line);
    	if($temp[0] eq $username) { $found = 1; }
    }
    if($found eq "1") {
    	&plainerror("Username Already Used");
    }
    
    open(ACCTS,">>$file") || &plainerror("Could not open file ($!)");
    flock(ACCTS, 2);
    print ACCTS "$username|$password|$email|$name|$siteheadline|$url|$description|$id\n";
    flock(ACCTS, 8);
    close(ACCTS);
    open(AUTO, "signup.txt") || &plainerror("Could not open autoresponder file ($!)!");
    	@auto = <AUTO>;
    	close(AUTO);
    	open(MAIL, "|$sendmail -t") || &plainerror("Could not open sendmail ($!)!");
    	print MAIL "To: $email\n";
    	print MAIL "From: $adminemail\n";
    	print MAIL "Subject: Welcome!\n\n";
    	foreach $line (@auto) {
    		chop($line);
    	$line =~ s/<name>/$name/g;
    	$line =~ s/<username>/$username/g;
    	$line =~ s/<email>/$email/g;
    	$line =~ s/<password>/$password/g;
            $line =~ s/<siteheadline>/$siteheadline/g;
            $line =~ s/<url>/$url/g;
            $line =~ s/<description>/$description/g;
            $line =~ s/<id>/$id/g;
    	print MAIL "$line\n";
    	}
    	close(MAIL);
    open(AUTO, "affiliate.txt") || &plainerror("Could not open autoresponder file ($!)!");
    	@auto = <AUTO>;
    	close(AUTO);
    	open(MAIL, "|$sendmail -t") || &plainerror("Could not open sendmail ($!)!");
    	print MAIL "To: $adminemail\n";
    	print MAIL "From: $adminemail\n";
    	print MAIL "Subject: You Have a New Affiliate!\n\n";
    	foreach $line (@auto) {
    		chop($line);
    	$line =~ s/<name>/$name/g;
    	$line =~ s/<username>/$username/g;
    	$line =~ s/<email>/$email/g;
    	$line =~ s/<password>/$password/g;
            $line =~ s/<siteheadline>/$siteheadline/g;
            $line =~ s/<url>/$url/g;
            $line =~ s/<description>/$description/g;
            $line =~ s/<id>/$id/g;
    	print MAIL "$line\n";
    	}
    	close(MAIL);
    &plainerror('You have been added! Push Your Back Button to log in or check your email for further instructions');
    exit;
    }
    
    
    sub uauth {
    open(UDB, "$file") || &plainerror("Could not open passwd ($!)!");
    flock(UDB, 2);
    @udb = <UDB>;
    flock(UDB, 8);
    close(UDB);
    $found = 0;
    foreach $line (@udb) {
    	chop($line);
    	@info = split(/\|/,$line);
    	if($user eq $info[0] && $pass eq $info[1]) {
    		$found = 1;
    	}
    }
    unless($found eq "1") { &plainerror("Invalid logon information."); }
    }
    
    sub menu {
    &uauth;
    open(UDB, "$file") || &plainerror("Could not open passwd ($!)!");
    flock(UDB, 2);
    @udb = <UDB>;
    flock(UDB, 8);
    close(UDB);
    $found = 0;
    foreach $line (@udb) {
    	chop($line);
    	@info = split(/\|/,$line);
    if($info[0] eq $user){
    print "Content-type:text/html\n\n";
    print qq|<html>
    <head>
    <title>$program</title>
    </head>
    <body>
    <table border="0" width="100%" cellspacing="0" cellpadding="3">
      <tr>
        <td width="100%" bgcolor="#000080"><font face="Arial" color="#FFFFFF"><b>$program</b></font></td>
      </tr>
      <tr>
        <td width="100%">
          <blockquote>
      <center>
               <p align="center"><font face="arial" size="3"><b>$program</b></font></p>
     <p align="center"><font face="arial" size="2"><b>URL to Promote is:<BR>
                    <a href="$promote/main.cgi?$user">$promote/main.cgi?$user</a></b></font></p>
                    <p align="center"><b><font size="2">Update Form</font></b></p>
                    <form method="POST" action="$ENV{'SCRIPT_NAME'}">
                      <table border="0" cellspacing="0" cellpadding="2" width="248">
                  <tr>
                  <td width="88"><b><font face="Arial" size="2">Password:</font></b></td>
                  <td width="148"><input type="password" name="npass" size="20" value="$info[1]"></td>
                </tr>
                 <tr>
                  <td width="88"><b><font face="Arial" size="2">Email:</font></b></td>
                  <td width="148"><input type="text" name="email" size="20" value="$info[2]"></td>
                </tr>
                <tr>
                  <td width="88"><b><font face="Arial" size="2">Website Headline:</font></b></td>
                  <td width="148"><input type="text" name="siteheadline" size="20" value="$info[4]"></td>
                </tr>
                 <tr>
                  <td width="88"><b><font face="Arial" size="2">Website URL:</font></b></td>
                  <td width="148"><input type="text" name="url" size="20" value="$info[5]"></td>
                </tr>
                <tr>
                  <td width="88"><b><font face="Arial" size="2">Description:</font></b></td>
                  <td width="148"><input type="text" name="description" size="20" maxlength="150" value="$info[6]"></td>
                </tr>
                 <tr>
                  <td width="88"><b><font face="Arial" size="2">PayPal Email:</font></b></td>
                  <td width="148"><input type="text" name="id" size="20" value="$info[7]"></td>
                </tr>
                <tr>
                  <td width="236" colspan="2">
                    <p align="center"><input type="submit" value="Submit"></td>
                </tr>
              </table>
                      <input type="hidden" name="action" value="editmember">
                      <input type="hidden" name="pass" value="$pass">
                      <input type="hidden" name="user" value="$user">
                    </form>
                   <p align="center"><b><font size="2" color="#000000">To DELETE your account,
              press the button below</font></b></p>
            <form method="POST" action="$ENV{'SCRIPT_NAME'}">
             <p align="center"><input type="submit" value="Delete My Account">
      <input type="hidden" name="action" value="deletemember">
                      <input type="hidden" name="pass" value="$pass">
                      <input type="hidden" name="user" value="$user">
    </p>
            </form>
    </blockquote>
        </td>
      </tr>
      <tr>
        <td width="100%" bgcolor="#000080">
          <p align="right"><font face="Arial" size="2" color="#FFFFFF">©2001-2003 CGItoolbox.com </font></td>
      </tr>
    </table>
    <center><FONT FACE=verdana SIZE=1><B>$program written<BR>
    by <a href="http://www.hostswan.com/cgi">CGI Toolbox</a></B></FONT></center>
    </body>
    
    </html>
    </body>
    
    </html>
    |;
    }}
    exit;
    }
    
    sub editmember {
    &uauth;
    @data = param;
    foreach $data (@data) {
    ${$data} = param($data);
    }
    
    open(ACCTS,"$file") || &plainerror("Could not open file ($!)");
    flock(ACCTS, 2);
    @accts = <ACCTS>;
    flock(ACCTS, 8);
    close(ACCTS);
    foreach $line (@accts) {
    	chop($line);
    	($luser,$lpass,$lemail,$lname,$lsiteheadline,$lurl,$ldescription,$lid) = split(/\|/,$line);
          if($user eq $luser){
       $line = "$luser|$npass|$email|$name|$siteheadline|$url|$description|$id\n";
    }
    else {
    $line = "$line\n";
    }
    }
    open(ACCTS,">$file") || &plainerror("Could not open file ($!)");
    flock(ACCTS, 2);
    print ACCTS (@accts);
    flock(ACCTS, 8);
    close(ACCTS);
    
    &plainerror('The member has been edited');
    exit;
    }
    
    sub deletemember {
    &uauth;
    @data = param;
    foreach $data (@data) {${$data} = param($data);}
    
    open(ACCTS,"$file") || &plainerror("Could not open file ($!)");
    flock(ACCTS, 2);
    @accts = <ACCTS>;
    flock(ACCTS, 8);
    close(ACCTS);
    foreach $line (@accts) {
    	chop($line);
    	@tempd = split(/\|/,$line);
          if($user eq $tempd[0]){
       $line = "";
    }
    else {
    $line = "$line\n";
    }
    }
    open(ACCTS,">$file") || &plainerror("Could not open file ($!)");
    flock(ACCTS, 2);
    print ACCTS (@accts);
    flock(ACCTS, 8);
    close(ACCTS);
    
    &plainerror('Your have been deleted');
    exit;
    }
    
    sub plainerror {
     print "Content-type:text/html\n\n";
    print qq|
            <HTML><HEAD>
      <title>$program</title>
    </head>
    <body bgcolor="ffffff">
    <table border="0" width="100%" cellspacing="0" cellpadding="3">
      <tr>
        <td width="100%" bgcolor="#000080"><font face="Arial" color="#FFFFFF"><b>$program</b></font></td>
      </tr>
      <tr>
        <td width="100%">
          <blockquote>
     <FONT FACE="Arial" SIZE=2 COLOR=000080><CENTER>$_[0]</CENTER></FONT><HR WIDTH=50%>
    </blockquote>
        </td>
      </tr>
      <tr>
        <td width="100%" bgcolor="#000080">
          <p align="right"><font face="Arial" size="2" color="#FFFFFF">©2001-2003 CGItoolbox.com </font></td>
      </tr>
    </table><center><FONT FACE=verdana SIZE=1><B>$program written<BR>
    by <a href="http://www.hostswan.com/cgi">CGI Toolbox</a></B></FONT></center>
      </BODY></HTML>
    |;
    exit;
    }
    Variables.
    Code:
    #path to sendmail
    $sendmail = "/usr/sbin/sendmail";
    
    #Your email address
    $adminemail = "yourname\@yoursite.com";
    
    # this is the path to the data.txt file
    $file = "/www/yourpath/af/data.txt";
    
    # this is where the script will send the visitor if the
    #visitor types in the wrong url
    $default = "http://www.yourdomain.com/af/main.cgi?main";
    
    # this is the path to the directory where the scripts are.
    $datapath = "/www/yourpath/af/";
    
    # this is the name of your program
    $program = "Your Affiliate Program";
    
    # this is the URL to the directory where the scripts are
    $promote = "http://www.yourdomain.com/af";
    
    1;
    
     
    • Thanks Thanks x 1
  2. Tru5t

    Tru5t Newbie

    Joined:
    Aug 19, 2013
    Messages:
    12
    Likes Received:
    5
    Occupation:
    Custom software development
    I am not sure why you want it to be converted... There is so many differences between the architecture there and the one you want. I saw a couple of security flaws in your perl script. So you want an online form for someone to subscribe to become a member affiliate and login to a kind of portal...

    you need it pure PHP or using a framework or as a wordpress extension?
     
  3. vikasvyas47

    vikasvyas47 Power Member

    Joined:
    Dec 6, 2011
    Messages:
    523
    Likes Received:
    4
    please add me on skype
     
  4. kayzne

    kayzne Power Member

    Joined:
    Dec 26, 2007
    Messages:
    703
    Likes Received:
    1,951
    Location:
    localhost
    You're right, I need something to work essentially as this script does.

    Basically, someone signs up, fills in some data which can be displayed on mydomain.com/theirname page using php.
     
  5. royserpa

    royserpa Jr. VIP Jr. VIP Premium Member

    Joined:
    Sep 28, 2011
    Messages:
    4,986
    Likes Received:
    3,734
    Gender:
    Male
    Occupation:
    Negative Options aka Rebills!
    Location:
    Exploiting Loopholes!
    Home Page:
    @OP: I could do everything on php from scratch.

    If want so, please PM me.

    I think, IMO, that converting from perl would take much more time if its just done from scratch.

    And as always, that's my 20 bucks :cool: