<?php
// filter_ideas.php
// RJM Programming
// February, 2019

$form="<form style='width:95%;background-color:yellow;padding:5px 5px 5px 5px;' onsubmit=\" var hs=document.getElementsByTagName('input');  for (var ihs=0; ihs<eval(-1 + hs.length); ihs++) {  hs[ihs].value=btoa(hs[ihs].value);   }   return true;\" action=./filter_ideas.php method=GET>

<input style='width:80%;' placeholder=String id=astring name=astring type=text value=></input><br>
<input style='width:80%;' placeholder=Float id=afloat name=afloat type=text value=></input><br>
<input style='width:80%;' placeholder=Integer id=aninteger name=aninteger type=text value=></input><br>
<input style='width:80%;' placeholder='IP address' id=anip name=anip type=text value=></input><br>
<input style='width:80%;' placeholder=Email id=anemail name=anemail type=text value=></input><br>
<input style='width:80%;' placeholder=Url id=aurl name=aurl type=text value=></input><br>
<input style='width:80%;' placeholder=Boolean id=abool name=abool type=text value=></input><br>
<input style='width:80%;' placeholder='Magic Quotes' id=amagicquotes name=amagicquotes type=text value=></input><br>


<br><input type=submit value=Validate></input>
</form>";


if (isset($_GET['astring'])) {
  echo "<!doctype html><html><body style='width:100%;background-color:pink;padding:5px 5px 5px 5px;'><h1>PHP Form Validation via Filter Extension</h1><h3>RJM Programming - February, 2019</h3><div style='width:90%;background-color:lightblue;padding:5px 5px 5px 5px;'>";
  $prevar=base64_decode(urldecode($_GET['astring']));
  if ($prevar == '') {
      echo "<p>No String.</p>";
  } else {
    $var=filter_var($prevar, FILTER_SANITIZE_STRING);
    if ($var == $prevar) {
      echo "<p>Valid String " . $var . "</p>";
    } else {
      echo "<p>Sanitized String " . $var . " (derived from " . str_replace("<","&lt;",str_replace(">","&gt;",$prevar)) . ")</p>";
    }
  }

  $prevar=base64_decode(urldecode($_GET['afloat']));
  if ($prevar == '') {
      echo "<p>No Float.</p>";
  } else if (!filter_var($prevar, FILTER_VALIDATE_FLOAT) === false) {
      echo "<p>Valid Float " . $prevar . "</p>";
  } else {
      echo "<p>Invalid Float " . $prevar . "</p>";
  }

  $prevar=base64_decode(urldecode($_GET['aninteger']));
  if ($prevar == '') {
      echo "<p>No Integer.</p>";
  } else if (filter_var($prevar, FILTER_VALIDATE_INT) === 0 || !filter_var($prevar, FILTER_VALIDATE_INT) === false) {
      echo "<p>Valid Integer " . $prevar . "</p>";
  } else {
      echo "<p>Invalid Integer " . $prevar . "</p>";
  }
  
  $prevar=base64_decode(urldecode($_GET['anip']));
  if ($prevar == '') {
      echo "<p>No IP address.</p>";
  } else if (!filter_var($prevar, FILTER_VALIDATE_IP) === false) {
      echo "<p>Valid IP address " . $prevar . "</p>";
  } else {
      echo "<p>Invalid IP address " . $prevar . "</p>";
  }

  $prevar=base64_decode(urldecode($_GET['anemail']));
  if ($prevar == '') {
      echo "<p>No Email.</p>";
  } else if (!filter_var($prevar, FILTER_VALIDATE_EMAIL) === false) {
      echo "<p>Valid Email " . $prevar . "</p>";
  } else {
      echo "<p>Invalid Email " . $prevar . "</p>";
  }

  $prevar=base64_decode(urldecode($_GET['aurl']));
  if ($prevar == '') {
      echo "<p>No Url.</p>";
  } else {
    $var=filter_var($prevar, FILTER_SANITIZE_URL);
    if (!filter_var($var, FILTER_VALIDATE_URL) === false) {
     if ($var == $prevar) {
      echo "<p>Valid Url " . $var . "</p>";
     } else {
      echo "<p>Sanitized Url " . $var . " (derived from " . str_replace("<","&lt;",str_replace(">","&gt;",$prevar)) . ")</p>";
     }
    } else {
     echo "<p>Invalid Url " . $prevar . "</p>";
    }
  }

  $prevar=base64_decode(urldecode($_GET['abool']));
  if ($prevar == '') {
      echo "<p>No Boolean.</p>";
  } else if (!filter_var($prevar, FILTER_VALIDATE_BOOLEAN) === false) {
      echo "<p>Valid Boolean " . $prevar . "</p>";
  } else {
      echo "<p>Invalid Boolean " . $prevar . "</p>";
  }
  

  $prevar=base64_decode(urldecode($_GET['amagicquotes']));
  if ($prevar == '') {
      echo "<p>No Magic Quotes.</p>";
  } else {
    $var=filter_var($prevar, FILTER_SANITIZE_MAGIC_QUOTES);
    if ($var == $prevar) {
      echo "<p>Valid Magic Quotes " . $var . "</p>";
    } else {
      echo "<p>Sanitized Magic Quotes " . $var . " (derived from " . str_replace("<","&lt;",str_replace(">","&gt;",$prevar)) . ")</p>";
    }
  }

  
  echo "</div><br>" . $form . "</body></html>";
} else {
  echo "<!doctype html><html><body style='width:100%;background-color:pink;padding:5px 5px 5px 5px;'><h1>PHP Form Validation via Filter Extension</h1><h3>RJM Programming - February, 2019</h3>" . $form . "</body></html>";
}

?>
