Advertisement
Guest User

Untitled

a guest
Jul 1st, 2013
4
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.63 KB | None | 0 0
  1. <?php
  2.  
  3. use Aura\Input\Builder;
  4. use Aura\Input\Filter;
  5. use Aura\Input\Form;
  6. use Aura\Filter\RuleCollection as AdvancedFilter;
  7. use Aura\Filter\RuleLocator;
  8. use Aura\Filter\Translator;
  9.  
  10. $loader = require dirname(__DIR__) . '/vendor/autoload.php';
  11. $advancedFilter = require dirname(__DIR__) . "/vendor/aura/filter/scripts/instance.php";
  12.  
  13. //$advancedFilter->addSoftRule('username', $advancedFilter::IS, 'alnum');
  14. $format = "Y-m-d";
  15. $advancedFilter->addHardRule('birthday', $advancedFilter::FIX, 'dateTime', $format);
  16.  
  17. function convertDate($date) {
  18.     $date = preg_replace('/\D/','/',$date);
  19.     return date('Y-m-d',strtotime($date));
  20. }
  21.  
  22. class ContactForm extends Form
  23. {
  24.     public function init()
  25.     {
  26.         $this->setField('name')
  27.             ->setAttribs([
  28.                 'id' => 'name',
  29.                 'size' => 20,
  30.                 'maxlength' => 20,
  31.             ]);
  32.         $this->setField('email')
  33.             ->setAttribs([
  34.                 'size' => 20,
  35.                 'maxlength' => 20,
  36.             ]);
  37.         $this->setField('url')
  38.             ->setAttribs([
  39.                 'size' => 20,
  40.                 'maxlength' => 20,
  41.             ]);
  42.         $this->setField('message', 'textarea')
  43.             ->setAttribs([
  44.                 'cols' => 40,
  45.                 'rows' => 5,
  46.             ]);
  47.  
  48.  
  49.         $this->setField('state', 'select')
  50.              ->setOptions([
  51.                 'AL' => 'Alabama',
  52.                 'AK' => 'Alaska',
  53.                 'AZ' => 'Arizona',
  54.                 'AR' => 'Arkansas',
  55.              ]);
  56.  
  57.         $this->setField('birthday')
  58.             ->setAttribs([
  59.                 'size' => 20,
  60.                 'maxlength' => 20,
  61.             ]);
  62.  
  63.         $this->setField('submit', 'submit')
  64.             ->setAttribs(['value' => 'send']);
  65.  
  66.  
  67.         $filter = $this->getFilter();
  68.  
  69.         $filter->setRule(
  70.             'name',
  71.             'Name must be alphabetic only.',
  72.             function ($value) {
  73.                 return ctype_alpha($value);
  74.             }
  75.         );
  76.  
  77.         $filter->setRule('email', 'Enter a valid email address', function ($value) {
  78.             return filter_var($value, FILTER_VALIDATE_EMAIL);
  79.         });
  80.  
  81.         $filter->setRule('url', 'Enter a valid url', function ($value) {
  82.             return filter_var($value, FILTER_VALIDATE_URL);
  83.         });
  84.  
  85.         $filter->setRule('message', 'Message should be more than 7 characters', function ($value) {
  86.             if (strlen($value) > 7) {
  87.                 return true;
  88.             }
  89.             return false;
  90.         });
  91.  
  92.  
  93.  
  94.  
  95.  
  96.     }
  97. }
  98.  
  99. $form = new ContactForm(new Builder(), new Filter() );
  100.  
  101. if ($_POST && $_POST['submit'] == 'send') {
  102.     $data = $_POST;
  103.  
  104.     $data['birthday'] = str_replace("/", "-", $data['birthday']);
  105.  
  106.     echo $data['birthday'];
  107.  
  108.     //$data['birthday'] = convertDate($data['birthday']);
  109.  
  110.  
  111.     $success = $advancedFilter->values($data);
  112.     if (! $success) {
  113.         $messages = $advancedFilter->getMessages();
  114.         var_export($messages);
  115.         var_dump($success);
  116.         var_dump($data);
  117.  
  118.         //exit;
  119.     }
  120.     else
  121.     {
  122.         echo "Sanitized!";
  123.         var_dump($success);
  124.         var_dump($data);
  125.     }
  126.  
  127.     /*
  128.     $form->fill($data);
  129.     if ($form->filter()) {
  130.         //
  131.         echo "Yes successfully validated and filtered";
  132.         var_dump($data);
  133.  
  134.     }*/
  135.  
  136.     exit;
  137. }
  138.  
  139. $helper = new Aura\View\HelperLocator([
  140.     'field'         => function () {
  141.         return new Aura\View\Helper\Form\Field(
  142.             require dirname(__DIR__) . '/vendor/aura/view/scripts/field_registry.php'
  143.         );
  144.     },
  145.     'input'         => function () { return new Aura\View\Helper\Form\Input(
  146.             require dirname(__DIR__) . '/vendor/aura/view/scripts/input_registry.php'
  147.         );
  148.     },
  149.     'radios'        => function () { return new Aura\View\Helper\Form\Radios(new Aura\View\Helper\Form\Input\Checked); },
  150.     'repeat'         => function () { return new Aura\View\Helper\Form\Repeat(
  151.             require dirname(__DIR__) . '/vendor/aura/view/scripts/repeat_registry.php'
  152.         );
  153.     },
  154.     'select'        => function () { return new Aura\View\Helper\Form\Select; },
  155.     'textarea'      => function () { return new Aura\View\Helper\Form\Textarea; },
  156. ]);
  157.  
  158. $field = $helper->get('field');
  159. function showFieldErrors($form, $name) {
  160.     $errors = $form->getMessages($name);
  161.     $str = '';
  162.     if ($errors) {
  163.         $str .= '<ul>';
  164.         foreach ($errors as $error) {
  165.             $str .= '<li>' . $error . '</li>';
  166.         }
  167.         $str .= '</ul>';
  168.     }
  169.     return $str;
  170. }
  171.  
  172.  
  173. ?>
  174.  
  175. <html>
  176. <head>
  177.     <title>Aura Form, to make it standalone</title>
  178. </head>
  179. <body>
  180.     <form method="post" action="" enctype="multipart/form-data" >
  181.         <table cellpadding="0" cellspacing="0">
  182.             <tr>
  183.                 <td>Name : </td>
  184.                 <td>
  185.                 <?php
  186.                     echo $field($form->get('name'));
  187.                     echo showFieldErrors($form, 'name');
  188.                 ?>
  189.                 </td>
  190.             </tr>
  191.             <tr>
  192.                 <td>Email : </td>
  193.                 <td>
  194.                 <?php
  195.                     echo $field($form->get('email'));
  196.                     echo showFieldErrors($form, 'email');
  197.                 ?>
  198.                 </td>
  199.             </tr>
  200.             <tr>
  201.                 <td>Url : </td>
  202.                 <td>
  203.                 <?php
  204.                     echo $field($form->get('url'));
  205.                     echo showFieldErrors($form, 'url');
  206.                 ?>
  207.                 </td>
  208.             </tr>
  209.             <tr>
  210.                 <td>Message : </td>
  211.                 <td>
  212.                 <?php
  213.                     echo $field($form->get('message'));
  214.                     echo showFieldErrors($form, 'message');
  215.                 ?>
  216.                 </td>
  217.             </tr>
  218.             <tr>
  219.                 <td>State : </td>
  220.                 <td>
  221.                 <?php
  222.                     echo $field($form->get('state'));
  223.                     echo showFieldErrors($form, 'state');
  224.                 ?>
  225.                 </td>
  226.             </tr>
  227.             <tr>
  228.                 <td>Birthday : </td>
  229.                 <td>
  230.                 <?php
  231.                     echo $field($form->get('birthday'));
  232.                     echo showFieldErrors($form, 'birthday');
  233.                 ?>
  234.                 </td>
  235.             </tr>
  236.             <tr>
  237.                 <td colspan="2">
  238.                 <?php
  239.                 echo $field($form->get('submit'));
  240.                 ?>
  241.                 </td>
  242.             </tr>
  243.         </table>
  244.     </form>
  245. </body>
  246. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement