Advertisement
gitlez

Untitled

Nov 26th, 2011
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.22 KB | None | 0 0
  1. <?php
  2. function cleanEI($s){ // EI = EmailInjection
  3.   return str_ireplace(Array("\r\n","\r","\n","\t","%0A","%0D","%08","%09","bcc:","cc:"),'',$s);
  4. }
  5. function bindAndPreventEI(){
  6.   $a = func_get_args();
  7.   $cn = count($a);
  8.   for($i=0;$i<$cn;++$i){
  9.     Global ${$a[$i]};
  10.     ${$a[$i]} = cleanEI($_POST[$a[$i]]);
  11.   }
  12. }
  13. if($_SERVER['REQUEST_METHOD'] === 'POST'){
  14.   // Check for Email Injection and bind to script
  15.   bindAndPreventEI('name','email','phone1','phone2','call','referral','message');
  16.   $email = urldecode($email);
  17.   $services = (count($_POST['Services']) > 0)? cleanEI(implode(', ', $_POST['Services'])) : '';
  18.   $formcontent = "
  19. From: $name
  20. Email: $email
  21. Landline: $phone1
  22. Mobile: $phone2
  23. Preferred Call: $call
  24. Services: $services
  25. Referral: $referral
  26. Message: $message
  27. ";
  28.   echo '<pre>';
  29.   echo $formcontent;
  30.   exit;
  31.  
  32. }
  33.  
  34. $contactForm = <<<FORM
  35. <form action="" method="post">
  36. <table width="410" border="0">
  37.   <tr>
  38.     <td colspan="4">
  39.       <p><strong>Name</strong></p><br />
  40.     </td>
  41.     <td colspan="2">
  42.       <input type="text" name="name" />
  43.     </td>
  44.   </tr>
  45.   <tr>
  46.     <td colspan="4">
  47.       <strong>Email</strong>
  48.     </td>
  49.     <td colspan="2"><input type="text" name="email" />
  50.     </td>
  51.   </tr>
  52.   <tr>
  53.     <td height="20" colspan="4">
  54.       <strong>Landline Telephone</strong><br />
  55.     </td>
  56.     <td height="20" colspan="2">
  57.       <input type="text" name="phone1" />
  58.     </td>
  59.   </tr>
  60.   <tr>
  61.     <td height="22" colspan="4">
  62.       <p><strong>Mobile Telephone</strong><br /></p>
  63.     </td>
  64.     <td colspan="2">
  65.       <input type="text" name="phone2" />
  66.     </td>
  67.   </tr>
  68.   <tr>
  69.     <td height="38" colspan="4">
  70.       <strong>Preferred Contact</strong>
  71.     </td>
  72.     <td width="84">
  73.       Landline: <input type="radio" value="Landline" name="call" checked="checked" />
  74.     </td>
  75.     <td width="103">
  76.       Mobile: <input type="radio" value="Mobile" name="call" />
  77.     </td>
  78.   </tr>
  79.   <tr>
  80.     <td height="38" colspan="4">
  81.       <strong>How Did You Hear About Us</strong>
  82.     </td>
  83.     <td colspan="2">
  84.       <select name="referral" size="1">
  85.         <option value="Low">Low</option>
  86.         <option value="Normal">Normal</option>
  87.         <option value="High">High</option>
  88.         <option value="Emergency">Emergency</option>
  89.       </select>
  90.     </td>
  91.   </tr>
  92.   <tr>
  93.     <td height="24" colspan="4">
  94.       <strong>Our services</strong>
  95.     </td>
  96.     <td>&nbsp;</td>
  97.     <td>&nbsp;</td>
  98.   </tr>
  99.   <tr>
  100.     <td height="20" colspan="3" align="right">
  101.       Landline: <input type="checkbox" value="Landline" name="Services[]" />
  102.     </td>
  103.     <td height="20" align="right">&nbsp;</td>
  104.     <td>
  105.       Mobile: <input type="checkbox" value="Mobile" name="Services[]" />
  106.     </td>
  107.     <td>
  108.       Service3: <input type="checkbox" value="Service3" name="Services[]" />
  109.     </td>
  110.   </tr>
  111.   <tr>
  112.     <td height="20" colspan="3" align="right">
  113.       Service7: <input type="checkbox" value="Service7" name="Services[]" />
  114.     </td>
  115.     <td height="20" align="right">&nbsp;</td>
  116.     <td>
  117.       Service8: <input type="checkbox" value="Service8" name="Services[]" />
  118.     </td>
  119.     <td>
  120.       Service9: <input type="checkbox" value="Service9" name="Services[]" />
  121.     </td>
  122.   </tr>
  123.   <tr>
  124.     <td height="20" colspan="3" align="right">
  125.       Service4: <input type="checkbox" value="Service4" name="Services[]" />
  126.     </td>
  127.     <td width="27" align="right">&nbsp;</td>
  128.     <td>
  129.       Service5: <input type="checkbox" value="Service5" name="Services[]" />
  130.     </td>
  131.     <td>
  132.       Service6: <input type="checkbox" value="Service6" name="Services[]" />
  133.     </td>
  134.   </tr>
  135.   <tr>
  136.     <td height="20" colspan="4">
  137.       <strong>Message</strong>
  138.     </td>
  139.     <td>&nbsp;</td>
  140.     <td>&nbsp;</td>
  141.   </tr>
  142.   <tr>
  143.     <td height="20" colspan="6">
  144.       <textarea name="message" rows="6" cols="55"></textarea>
  145.     </td>
  146.   </tr>
  147.   <tr>
  148.     <td width="59" height="20">&nbsp;</td>
  149.     <td width="1">&nbsp;</td>
  150.     <td width="110">&nbsp;</td>
  151.     <td height="20">&nbsp;</td>
  152.     <td height="20">&nbsp;</td>
  153.     <td height="20"><input type="submit" value="Send" />      <input type="reset" value="Clear" />
  154.     </td>
  155.   </tr>
  156. </table>
  157. <p><br />
  158. </p>
  159. </form>
  160. FORM;
  161.  
  162. echo $contactForm;
  163.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement