%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/nailstv/public_html/de.nails.tv/include/
Upload File :
Create Path :
Current File : /home/nailstv/public_html/de.nails.tv/include/Inputvalidator.class.php

<?php

class Inputvalidator {

    var $isError;
    var $error;
    var $message;
    var $filter;

    function Inputvalidator()
    {
        $this->init();
    }

    function init()
    {
        $this->isError = false;
        $this->error   = array();
        $this->message = array();
        $this->defineMessages();
        $this->defineFilters();
    }

    function defineMessages()
    {
        $this->message['notValidLoginName'] =
            "A login név minimum 4, maximum 20 karakter lehet, csak számot és ékezet nélküli kisbetüt tartalmazhat.";

        $this->message['requiredFieldHasNoValue'] =
            "Egy szüksédes adat nincs megadva.";

	    $this->message['notUniqueField'] =
		    "A két mező közül csak egy tölthető ki";
    }

    function defineFilters()
    {
        $this->filter = array(
            "email"     => "validateEmail",
            "int"       => "validateInteger",
            "float"     => "validateFloat",
            "stripHtml" => "stripHtml",
            "login"     => "validateLoginName",
            "required"  => "validateIsSet",
            "date"      => "validateDate",
            "unique"    => "validateUnique"
        );
    }

    function v( $data, $filter, $msg = '' )
    {
        $filter = explode( ',', $filter );

        if ( trim( $filter[0] ) == 'required' || !empty($data) )
        {
            $i = 0;
            foreach ( $filter AS $val )
            {
                $val = trim( $val );

                if ( is_array( $msg ) )
                {
                    $m = !empty($msg[ $i ]) ? $msg[ $i ] : '';
                }
                else
                {
                    $m = '';
                }

                switch ( $val )
                {
                    case 'email' :
                        $this->validateEmail( $data, $m );
                        break;
                    case 'stripHtml' :
                        $this->stripHtml( $data );
                        break;
                    case 'int' :
                        $this->validateInteger( $data, $m );
                        break;
                    case 'float' :
                        $data = str_replace( ",", ".", $data );
                        $this->validateFloat( $data, $m );
                        break;
                    case 'login' :
                        $this->validateLoginName( $data, $m );
                        break;
                    case 'required' :
                        $this->validateIsSet( $data, $m );
                        break;
                    case 'date' :
                        $this->validateDate( $data );
                        break;
	                case 'unique' :
                        $this->validateUnique( $data, $m );
                        break;
                }
                $i ++;
            }
        }

        return $data;
    }

    function validateLoginName( $name, $msg = '' )
    {
        if ( empty($name) )
        {
            return $name;
        }

        if ( !ereg( "^[a-z0-9]{4,20}$", $name ) )
        {
            if ( empty($msg) )
            {
                $msg = $this->message['notValidLoginName'];
            }
            $this->error[] = $msg;
            $this->isError = true;
        }

        return $name;
    }

    function stripHtml( $data )
    {
        return htmlspecialchars( strip_tags( $data ) );
    }

    function validateIsSet( $data, $msg = '' )
    {
        $data = trim( $data );

        if ( empty($data) )
        {
            if ( empty($msg) )
            {
                $msg = $this->message['requiredFieldHasNoValue'];
            }
            $this->error[] = $msg;
            $this->isError = true;
        }

        return;
    }

    function validateInteger( $data, $msg, $max = 4294967296 )
    {
        if ( empty($data) )
        {
            return;
        }

        if ( !is_numeric( $data ) || intval( $data ) != $data || $data > $max )
        {
            if ( empty($msg) )
            {
                $msg = "'" . $data . "' nem egy egész szám, vagy nagyobb mint " . number_format( $max );
            }
            $this->error[] = $msg;
            $this->isError = true;

            return false;
        }

        return $data;
    }

    function validateFloat( $data, $msg )
    {
        if ( empty($data) )
        {
            return;
        }

        if ( !is_numeric( $data ) )
        {
            $this->error[] = $msg;
            $this->isError = true;

            return false;
        }

        return $data;
    }

    function validateEmail( $email, $msg = '', $tryConnect = false )
    {
        if ( empty($email) )
        {
            return $email;
        }
        $re = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$";
        if ( ! filter_var( $email, FILTER_VALIDATE_EMAIL ) )
        {
            if ( empty($msg) )
            {
                $msg = 'Az e-mail cím formátuma nem megfelelő!';
            }
            $this->error[] = $msg;
            $this->isError = true;
        }

        if ( $tryConnect )
        {
            list($username, $domain) = split( "@", $email );

            if ( getmxrr( $domain, $MXHost ) )
            {
                $ConnectAddress = $MXHost[0];
            }
            else
            {
                $ConnectAddress = $domain;
            }

            $connect = fsockopen( $ConnectAddress, 25 );

            if ( $connect )
            {
                if ( ereg( "^220", $Out = fgets( $connect, 1024 ) ) )
                {
                    fputs( $connect, "HELO $HTTP_HOST\r\n" );
                    $Out = fgets( $connect, 1024 );
                    fputs( $connect, "MAIL FROM: <{$email}>\r\n" );
                    $From = fgets( $connect, 1024 );
                    fputs( $connect, "RCPT TO: <{$email}>\r\n" );
                    $To = fgets( $connect, 1024 );
                    fputs( $connect, "QUIT\r\n" );
                    fclose( $connect );

                    if ( !ereg( "^250", $From ) || !ereg( "^250", $To ) )
                    {
                        $this->error[] = "A(z) '" . $ConnectAddress . "' szerver elutasította a(z) '" . $email . "' címet.";
                        $this->isError = true;
                    }
                }
                else
                {
                    $this->error[] = "A(z) '" . $ConnectAddress . "' szerver nem válaszol.";
                    $this->isError = true;
                }
            }
            else
            {
                $this->error[] = "Nem sikerült csatlakozni a(z) '" . $ConnectAddress . "' mail szerverhez.";
                $this->isError = true;
            }
        }

        return $email;
    }

    function validateDate( $date, $required = false, $msg = '' ) // $date: YYYY-MM-DD
    {
        $d = explode( '-', $date );

        if ( empty($d[0]) || empty($d[1]) || empty($d[2]) )
        {
            if ( $required )
            {
                $this->error[] = $msg;
            }

            return;
        }

        $date2 = date( "Y-m-d", mktime( 0, 0, 0, $d[1], $d[2], $d[0] ) );

        if ( $date != $date2 )
        {
            $this->error[] = "'" . $date . "' nem megfelelő dátum.";

            return false;
        }

        return $date;
    }

	function validateUnique( $data, $msg = '' )
	{
		// list($field_1,$field_2) = $data['fields'];

		$unique_number = 0;
		foreach($data['fields'] as $fk => $field)
		{
			if($data['rec'][$field] != 0)
			{
				$unique_number++;
			}

			if($unique_number > 1)
			{
				if ( empty($msg) )
				{
					$msg = $this->message['notUniqueField'];
				}
				$this->error[] = $msg;
				$this->isError = true;

				return;
			}
		}

		/*
		if( (isset($data['rec'][$field_1]) && isset($data['rec'][$field_2])) && ($data['rec'][$field_1] != 0 && $data['rec'][$field_2] != 0) )
		{
			if ( empty($msg) )
			{
				$msg = $this->message['notUniqueField'];
			}
			$this->error[] = $msg;
			$this->isError = true;
		}
		*/

		return;

	}

    function addError( $e )
    {
        $this->isError = true;
        $this->error[] = $e;
    }

    function printError( $mode = 'get', $sep = '<br />' )
    {
        if ( !$this->isError )
        {
            return;
        }

        $msg = '';

        $i = 1;

        foreach ( $this->error AS $val )
        {
            $msg .= $i . '. ' . $val . $sep;
            $i ++;
        }

        if ( $mode == 'show' )
        {
            print $msg;
        }
        else
        {
            return $msg;
        }
    }
}

?>

Zerion Mini Shell 1.0