14, February 2012

Form Processor - webmaster forum

 
Webdigity webmaster forums
[ Home | Help | Search | Forum's Shop | Archive | Login | Register | Webmaster Directory ]
Webdigity Webmaster Forums  >  Web Development  >  PhP
Topic: Form Processor
« previous next »
Pages: [1] Print
Instabuck - The easy way to sell digital products online

Author Topic: Form Processor  (Read 1345 times)
I crack Photoshop!
*
Posts: 3
30 credits
Members referred : 0


« on: Jun 23, 2007, 08:37:54 am »



Does anyone know of a free php form processing script that would allow me to set some fields as required, can both send to an email address and populate a flat file (something I could export to Excel) AND is easy to set up?
Global Moderator
Community Supporter ?
Jedai Sword Master
*****
Gender: Male
Posts: 6691
34714 credits
Members referred : 374


It's time to use PHP5!


« Reply #1 on: Jun 23, 2007, 10:49:33 am »

its not so hard for someone with moderate php skills


Last blog : A new Wordpress theme for our blog
I am a metal monkey!
Administrator
Community Supporter ?
Jedai Sword Master
*****
Gender: Male
Posts: 5779
46271 credits
Members referred : 3



« Reply #2 on: Jun 23, 2007, 11:23:47 am »

I've always wanted to release a class for form processing, but I guess you will have to wait a little for this Smiley

Trial and Error my two best teachers Cool
Join us @ facebook or twitter

Last blog : Butterfly Marketing 2.0
Global Moderator
Community Supporter ?
Jedai Sword Master
*****
Gender: Male
Posts: 6691
34714 credits
Members referred : 374


It's time to use PHP5!


« Reply #3 on: Jun 23, 2007, 11:30:11 am »

I've always wanted to release a class for form processing, but I guess you will have to wait a little for this Smiley
me too, I have a lot of methods finished but providing a class is a lot of work Sad


Last blog : A new Wordpress theme for our blog
Where are my glasses?
*
Posts: 21
138 credits
Members referred : 0


« Reply #4 on: Jul 20, 2007, 02:25:02 am »

Here's a *very* basic class to validate forms. Please make suggestions for improving and extending it. Thanks in advance for your answers!

<?php

define('RULE_MIN_LENGTH', 0);
define('RULE_MAX_LENGTH', 1);
define('RULE_IS_EMPTY', 2);
define('RULE_NOT_VALID_EMAIL', 3);
define('RULE_IS_EQUAL', 4);
define('RULE_NOT_EQUAL', 5);
define('RULE_NOT_VALID_URL', 6);
define('RULE_NOT_INT', 7);

class formValidation
{
    public $rules;

    public function addRule($fieldName, $rule, $message, $value = '')
    {
        $this->rules[] = array($fieldName, $rule, $message, $value);
    }

    private function checkEMail($email)
    {
        if ((preg_match('/(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/', $email)) || (preg_match('/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/',
            $email)))
        {
            if (!function_exists('checkdnsrr'))
            {
                function checkdnsrr($hostName, $recType = '')
                {   
               return true; //does not work properly on Windows              
                   
                    if (strlen($hostName) > 0)
                    {
                        if ($recType == '')
                            $recType = "MX";
                           
                        exec("nslookup -type=$recType $hostName", $result);
                       
                  //check each line to find the one that starts with the host
                        //name. If it exists then the function succeeded.           
                  foreach ($result as $line)
                        {
                            if (eregi("^$hostName", $line))
                            {
                                return true;
                            }
                        }
                       
                        //otherwise there was no mail handler for the domain
                        return false;
                    }
                    return false;
                }
            }

            $host = substr(strrchr($email, '@'), 1);

            if (checkdnsrr($host . '.', 'MX'))
                return true;
            if (checkdnsrr($host . '.', 'A'))
                return true;
            if (checkdnsrr($host . '.', 'CNAME'))
                return true;
        }

        return false;
    }

    public function validateForm($requestArray = array())
    {
        if (!is_array($requestArray) || (count($requestArray) == 0))
        {
            $requestArray = $_REQUEST;
        }

        $messages = array();

        foreach ($this->rules as $item)
        {
            $fieldname = $item[0];
            $rule = $item[1];
            $message = $item[2];
            $value = $item[3];

            switch ($rule)
            {
                case RULE_MIN_LENGTH:
                    if (!isset($requestArray[$fieldname]) || (strlen($requestArray[$fieldname]) < $value))
                    {
                        $messages[] = $message;
                    }
                    break;

                case RULE_MAX_LENGTH:
                    if (!isset($requestArray[$fieldname]) || (strlen($requestArray[$fieldname]) > $value))
                    {
                        $messages[] = $message;
                    }
                    break;

                case RULE_IS_EMPTY:
                    if (!isset($requestArray[$fieldname]) || ($requestArray[$fieldname] == ''))
                    {
                        $messages[] = $message;
                    }
                    break;

                case RULE_NOT_VALID_EMAIL:
                    if (!isset($requestArray[$fieldname]) || !$this->checkEMail($requestArray[$fieldname]))
                    {
                        $messages[] = $message;
                    }
                    break;

                case RULE_IS_EQUAL:
                    if (!isset($requestArray[$fieldname]) || ($requestArray[$fieldname] == $requestArray[$value]))
                    {
                        $messages[] = $message;
                    }
                    break;

                case RULE_NOT_EQUAL:
                    if (!isset($requestArray[$fieldname]) || ($requestArray[$fieldname] != $requestArray[$value]))
                    {
                        $messages[] = $message;
                    }
                    break;

                case RULE_NOT_VALID_URL:
                    if (!isset($requestArray[$fieldname]) || !$this->checkEMail($requestArray[$fieldname]))
                    {
                        $messages[] = $message;
                    }
                    break;

                case RULE_NOT_INT:
                    if (!isset($requestArray[$fieldname]) || !$this->checkEMail($requestArray[$fieldname]))
                    {
                        $messages[] = $message;
                    }
                    break;
            }
        }

        return $messages;
    }
}

?>
Trackback URI for this entry : http://www.webdigity.com/trackback.php?topic=6838
Tags : forms Bookmark this thread : Digg Del.icio.us Dzone more....

Pages: [1] Print 
Webdigity Webmaster Forums  >  Web Development  >  PhP
Topic: Form Processor
« previous next »
Jump to:
User Area
Welcome, Guest. Please login or register.
Did you miss your activation email?
Feb 14, 2012, 09:44:40 am





Login with username, password and session length

Donate to our community, and get a permanent link back to your site!

Donate to our community, and get a permanent link back to your site!






Web Design Gallery · Whois Lookup · Pagerank · Tag Browsing · Lo-fi version · Syndication · Webmaster forum history · Advertise
Developed by HumanWorks © 2005 - 2012 Webdigity webmaster community · sublime directory
Webdigity Webmaster Forums | Powered by SMF 1.0.12. © 2001-2005, Lewis Media. All Rights Reserved.