Subversion-Projekte lars-tiefland.php_share

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?php
    /**
     * @package   php_share
     * @author    Lars Tiefland <tiefland@weban.de>
     * @copyright 2009 Webagentur Niewerth
     * @license   propietary http://www.weban.de
     * @version   $Rev: 766 $
     * @filesource
     * 
     */

    // SVN: $Id: weban_utils.class.php 766 2011-10-21 09:13:07Z tiefland $

    /**
     * Weban_Utils
     * 
     * @package JPT
     * @author Webagentur Niewerth
     * @copyright 2011
     * @version $Id: weban_utils.class.php 766 2011-10-21 09:13:07Z tiefland $
     * @access public
     */
    class Weban_Utils
    {
        /**
         * Weban_Utils::clean_global_input()
         * 
         * @param mixed $var
         * @param string $input
         * @param string $filter
         * @return
         */
        public static function clean_global_input( $var, $input = "post", $filter =
            "string" )
        {
            $escape = false;
            $strip = false;
            switch ( strtolower( $input ) )
            {
                case "post":
                    $input_type = INPUT_POST;
                    break;
                case "get":
                    $input_type = INPUT_GET;
                    break;
                case "cookie":
                    $input_type = INPUT_COOKIE;
                    break;
                case "server":
                    $input_type = INPUT_SERVER;
                    break;
                case "env":
                    $input_type = INPUT_ENV;
                    break;
                default:
                    trigger_error( "Invalid input type!\nPlease use only 'get' or'post'!",
                        E_USER_ERROR );
                    break;
            }
            switch ( strtolower( $filter ) )
            {
                case "string":
                    $escape = true;
                    $strip = true;
                    $ret = filter_input( $input_type, $var,
                        FILTER_SANITIZE_STRING );
                    break;
                case "int":
                    $ret = filter_input( $input_type, $var, FILTER_VALIDATE_INT );
                    break;
                case "float":
                    $ret = filter_input( $input_type, $var,
                        FILTER_VALIDATE_FLOAT, array( "decimal" => true ) );
                    break;
                case "email":
                    $escape = true;
                    $ret = filter_input( $input_type, $var,
                        FILTER_VALIDATE_EMAIL );
                    break;
                case "ip":
                    $ret = filter_input( $input_type, $var, FILTER_VALIDATE_IP );
                    break;
                default:
                    trigger_error( "Invalid filter type!\nPlease use only 'string','int','float','email' or 'ip'!",
                        E_USER_ERROR );
                    break;
            }
            if ( $strip === true )
            {
                $ret = strip_tags( $ret );
            }
            if ( $escape === true )
            {
                //$ret = mysql_real_escape_string( $ret );
            }
            return $ret;
        }
        /**
         * Weban_Utils::clean_input()
         * 
         * @param mixed $var
         * @param string $filter
         * @return
         */
        public static function clean_input( $var, $filter = "string" )
        {
            $escape = false;
            $strip = false;
            switch ( strtolower( $filter ) )
            {
                case "string":
                    $escape = true;
                    $strip = true;
                    $ret = filter_var( $var, FILTER_SANITIZE_STRING );
                    break;
                case "int":
                    $ret = filter_var( $var, FILTER_VALIDATE_INT );
                    break;
                case "float":
                    $ret = filter_var( $var, FILTER_VALIDATE_FLOAT, array( "decimal" => true ) );
                    break;
                case "email":
                    $escape = true;
                    $ret = filter_var( $var, FILTER_VALIDATE_EMAIL );
                    break;
                case "ip":
                    $ret = filter_var( $var, FILTER_VALIDATE_IP );
                    break;
                default:
                    trigger_error( "Invalid filter type!\nPlease use only 'string','int','float','email' or 'ip'!",
                        E_USER_ERROR );
                    break;
            }
            if ( $strip === true )
            {
                $ret = strip_tags( $ret );
            }
            if ( $escape === true )
            {
                $ret = mysql_real_escape_string( $ret );
            }
            return $ret;
        }

        /**
         * Weban_Utils::clean_get_input()
         * 
         * @param mixed $var
         * @param string $filter
         * @return
         */
        public static function clean_get_input( $var, $filter = "string" )
        {
            return Weban_Utils::clean_global_input( $var, "get", $filter );
        }

        /**
         * Weban_Utils::clean_post_input()
         * 
         * @param mixed $var
         * @param string $filter
         * @return
         */
        public static function clean_post_input( $var, $filter = "string" )
        {
            return Weban_Utils::clean_global_input( $var, "post", $filter );
        }
    }
?>