<?php
// ftp_url.php
// Help out ftp_url.py Python or Perl to list an ftp "path"
// RJM Programming
// November, 2017

$results="";
$dstring="";

if (isset($_POST['ftphost']) && isset($_POST['ftpusername']) && isset($_POST['ftppassword']) && isset($_POST['ftppath'])) {
  if (isset($_POST['download'])) {
    $dstring = " y";
  }
  if (file_exists("/tmp/ftp_url.txt")) {
    unlink("/tmp/ftp_url.txt");
  }
  if (isset($_POST['perl'])) {
  exec("perl ftp_url.pl " . urldecode($_POST['ftphost']) . " " . urldecode($_POST['ftpusername']) . " " . urldecode($_POST['ftppassword']) . " " . str_replace(" ","%20",urldecode($_POST['ftppath'])) . $dstring . " > /tmp/ftp_url.txt");
  sleep(2);
  } else {
  exec("python ftp_url.py " . urldecode($_POST['ftphost']) . " " . urldecode($_POST['ftpusername']) . " " . urldecode($_POST['ftppassword']) . " " . str_replace(" ","%20",urldecode($_POST['ftppath'])) . $dstring . " > /tmp/ftp_url.txt");
  sleep(2);
  }
  if (file_exists("/tmp/ftp_url.txt")) {
    if (isset($_POST['perl'])) {
    $results="perl ftp_url.pl " . urldecode($_POST['ftphost']) . " " . urldecode($_POST['ftpusername']) . " " . "........" . " " . urldecode($_POST['ftppath']) . "\n\n";
    } else {
    $results="python ftp_url.py " . urldecode($_POST['ftphost']) . " " . urldecode($_POST['ftpusername']) . " " . "........" . " " . urldecode($_POST['ftppath']) . "\n\n";
    }
    $results.=str_replace("\t","<br>",str_replace("-rw-","<br>-rw-",str_replace("-rwx","<br>-rwx",str_replace("drwx","<br>drwx",str_replace("/n","<br>",str_replace("/r","<br>",file_get_contents("/tmp/ftp_url.txt")))))));
    unlink("/tmp/ftp_url.txt");
  }
} 
echo "<!doctype html>
  <html>
  <head>
  <title>Supervising Python or Perl ftp URL Lister or Downloader - RJM Programming - November, 2017</title>
  <style>
  body { background-color: yellow; }
  form { padding: 10px 10px 10px 10px; background-color: pink; }
  input[type='submit'] { border:1px solid red; background-color: lightgreen; }
  </style>
  <script type='text/javascript'>
  function fixd(wh) {
    if (wh.value.indexOf('.') != -1) {
      document.getElementById('download').readOnly=false;
      //alert('there');
    }
  }
  function postnameit() {
    var iss=document.getElementsByTagName('input'), jss;
    if (document.getElementById('download').checked) {
      for (jss=0; jss<iss.length; jss++) {
        if (iss[jss].value.indexOf('List via ') == 0) {
          iss[jss].value=iss[jss].value.replace('List via ','Download via ');
        }
      }
    } else {
      for (jss=0; jss<iss.length; jss++) {
        if (iss[jss].value.indexOf('Download via ') == 0) {
          iss[jss].value=iss[jss].value.replace('Download via ','List via ');
        }
      }
      document.getElementById('od').innerHTML='N';
    }
  }
  function nameit(wh) {
    if (('' + wh.readOnly).replace('false','') == '') {
      //alert('here');
      wh.name=wh.id;
      setTimeout(postnameit, 50);
    } else {
      //alert('where ' + ('' + wh.readOnly));
      wh.checked=false;
    }
  }
  </script>
  <body>
  <h1>Supervising Python or Perl ftp URL Lister or Downloader</h1>
  <h3>RJM Programming - November, 2017</h3>
  <div>" . $results . "</div><br><br>
  <form action='./ftp_url.php' method='POST'>
  Host:     <input name=ftphost type=text value='ftp.ozemail.com.au'></input><br>
  Path:     <input onblur='fixd(this);' name=ftppath type=text value='/'></input>&nbsp;&nbsp;Download: <span id=od><input onclick='nameit(this);' type=checkbox id=download readonly=readonly></input></span><br>
  Username: <input name=ftpusername type=text value='mkuulma@ozemail.com.au'></input><br>
  Password: <input name=ftppassword type=password value=''></input><br>
  <br><br><input type=submit value='List via Python ...'></input>&nbsp;<input name='perl' type=submit value='List via Perl ...'></input>
  </form>
  </body>
  </html>
  ";
?>